桂林28生活网   切换城市   |   您好,欢迎来到桂林28生活网!
今天是:
 
生活百科
 
 
leo
  15级
帖子:133
精华:0
积分:266
注册:2015-12-14

 

云服务器不再提供25端口邮件服务,使用SSL加密465端口发送邮件

浏览:804 次   |   倒序看帖 楼主    1 楼
因云虚拟主机的25端口默认封闭,需要使用SSL加密端口(通常是465端口)来对外进行发送邮件。本文通过提供.NET、PHP和ASP样例来介绍使用SSL加密端口发送邮件的方法,其他语言的实现思路与本文介绍的方法基本相同。

前提条件
确认PHP函数的fsockopen参数为启动状态。

说明 PHP函数的fsockopen参数默认为启动状态。如需修改该参数状态,具体操作,请参见“设置PHP.INI参数”。
https://help.aliyun.com/zh/cloud-web-hosting/set-up-the-php-ini-parameters#task230

背景信息
● 基本原理
使用SSL加密端口发送邮件的基本原理与本地主机使用客户端(例如Outlook等)连接邮箱服务器发送邮件一致。即主机通过连接外部邮箱的发邮件服务器,并通过程序配置的账号密码鉴权验证来发送邮件,而不是服务器本身来发送邮件。

● 实现要点
使用SSL加密端口发送邮件的基本实现方式与使用25端口发送邮件一致,但改为SSL加密协议后,需要特别注意以下几点:
      ○ 编写好的程序调用外部邮箱发送邮件时,邮箱服务器需支持SSL加密功能。
      ○ 主机连接邮箱服务器时,请在编写好的程序中启用SSL加密协议。
      ○ 将连接外部邮箱服务器的端口改为SSL加密端口(465端口),具体配置信息可以向邮箱服务商咨询。

操作步骤
1、联系邮箱服务商获取使用SSL加密方式发送邮件的配置信息。
涉及的主要配置项如下所示:

配置项 说明
发邮件服务器地址 输入服务器邮箱地址。例如,a***.example.com。
发邮件服务器端口号 加密端口一般是465端口。
邮箱用户名 可能是Email地址,也可能是Email地址前缀,具体可咨询邮箱服务商。
邮箱客户端密码 部分邮箱服务商Web浏览器登录界面的登录密码和客户端密码并不相同,可能需要单独设置,具体可咨询邮箱服务商。

2、在本地主机使用客户端软件(Outlook、Foxmail等),使用已获取的邮件配置信息设置本地客户端,并发送邮件测试。
说明
如果邮件发送失败,表示获取的配置信息不正确,您需要联系邮箱服务商解决。

3、根据实际的开发语言选择对应的程序样例,并将程序样例下载到本地。
程序样例如下所示:
○ .NET源程序样例
https://help.aliyun.com/zh/cloud-web-hosting/use-cases/encrypted-using-ssl-port-465-to-send-email#section-amw-u19-tgs
○ PHP源程序样例
https://help.aliyun.com/zh/cloud-web-hosting/use-cases/encrypted-using-ssl-port-465-to-send-email#section-tge-coj-8p6
○ ASP源程序样例
https://help.aliyun.com/zh/cloud-web-hosting/use-cases/encrypted-using-ssl-port-465-to-send-email#section-0ml-6ye-mhy

4、使用已通过测试的配置信息,编写程序样例中的邮箱服务器配置项。
5、将编写好的程序通过Filezilla工具上传到云虚拟主机上,并实际发送邮件测试。
程序上传到云虚拟主机的具体操作,请参见“使用FileZilla管理文件”。
https://help.aliyun.com/zh/cloud-web-hosting/user-guide/use-filezilla-management-files#task992

.NET源程序样例
截取部分源程序样例如下:

MailMessage mmsg = new MailMessage();

mmsg.Subject = "主题";  //邮件主题
mmsg.BodyFormat = MailFormat.Html;
mmsg.Body = "正文";  //邮件正文
mmsg.BodyEncoding = Encoding.UTF8;  //正文编码
mmsg.Priority = MailPriority.High;  //优先级
mmsg.From = "a***@example.com";  //发件人邮箱地址
mmsg.To = "b***@example.com";  //收件人邮箱地址
mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "test01");  //用户名
mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "123****");  //密码
mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", 465);  //端口 
mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", "true");   //使用SSL
System.Web.Mail.SmtpMail.SmtpServer = "smtp.****.com";   //smtp服务器
SmtpMail.Send(mmsg);

PHP源程序样例
截取部分源程序样例如下:

<?php
require 'PHPMailerAutoload.php';
require_once('class.phpmailer.php');
require_once("class.smtp.php");
$mail = new PHPMailer();

$mail->CharSet="UTF-8";           //设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置为 UTF-8
$mail->IsSMTP();                  //设定使用SMTP服务
$mail->SMTPAuth = true;           //启用SMTP验证功能
$mail->SMTPSecure = "ssl";        //启用SSL
$mail->SMTPDebug = 2;
$mail->Host = "smtp.****.com";    //SMTP服务器
$mail->Port = 465;                //SMTP服务器的端口号
$mail->Username = "test01";                                      //SMTP服务器用户名
$mail->Password = "123****";                                     //SMTP服务器密码
$mail->SetFrom('a***@example.com', 'a***');                      //设置发件人地址和名称
$mail->AddReplyTo("b***@example.com","b***");                    //设置邮件回复人地址和名称
$mail->Subject = '邮件标题';                                      //设置邮件标题
$mail->AltBody = "为了查看该邮件,请切换到支持HTML的邮件客户端"; //可选项,向下兼容考虑
$mail->MsgHTML('helo');                             //设置邮件内容
$mail->AddAddress('c***@example.com', "c***");
$mail->AddAttachment("images/phpmailer.gif");                    //附件
if(!$mail->Send()) {
    echo "发送失败:" . $mail->ErrorInfo;
} else {
    echo "恭喜,邮件发送成功!";
}

?>

ASP源程序样例
截取部分源程序样例如下:

<%
Set Mail = CreateObject("CDO.Message")

Mail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
Mail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") ="smtp.****.com"
Mail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
Mail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = 1
Mail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
Mail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
Mail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") ="test01"
Mail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") ="123****"
Mail.Configuration.Fields.Update
Mail.Subject="Email subject"
Mail.From="a***@example.com"
Mail.To="b***@example.com"
Mail.TextBody="This is an email message."

Mail.Send
Set Mail = Nothing
%>
<%="发送成功!!!"%>
 
 
|< < >
 
我来回复:
 
您需要登录后才可以回帖 登录注册
 
特别推荐 · 生活社区
  • 【一汽奥迪 · 桂林世奥旗舰店】玩得不大,怎敢到处喧哗,玩得不大,怎敢请您参加,挑战价格底线
  • 【博群心儿篮球】寒假特训营,优惠活动,限时288元/期课程,报名且转发到朋友圈即送专业紧身衣数量有限
  • 【一汽奥迪】千万感恩季,试驾赢好礼,活动期间到店试驾指定车型,赢取车辆使用权/购车终身质保
  • 俊采星驰,燃擎焕新【一汽奥迪】A5L燃擎星驰版现已上市,心动入手价:267800元
  • 【一汽奥迪】A5L乾崑智驾®版,车身设计兼具优雅与动感,穿梭城市间自成亮眼风景!
  • 千万礼遇季,试驾赢好礼,第五轮30位「周日幸运星」已揭晓 ,恭喜以下中奖用户 获得专属权益
  • 博群篮球训练营春季招生
  • 千万感恩季,试驾赢好礼,到店试驾指定车型即可参与,第八轮60个幸运名额加倍放送!
  • 【金水湾 · 好声音】订房唱K,联系我,安排最好,​​​​​锁定快乐,感谢支持!
  • 【广西桂林华晟石材有限公司】www.shicai08.com 广西黑白根 现货
  • 5月22-24日限时秒杀!!星达保价618,特惠提前抢,低至4折
  • 【振华武术】暑假班大福利,​6月10日前报名,直降500元,再送6月份课程,快快加入我们吧
  • 【老乡亲酒家】时逢芒种至,遍地夏耕忙,耕耘不负好时节,烟火暖食慰风尘
  • 暑假即将来临,各位家长们快点抢暑假班名额,名额有限,抢到暑假课程送6月份的课程,先到先得
  • 【博群训练营】暑假招生,9折!只限7月1日前,报名热线:15878383098 唐教练(微信同号)
  •