阿里云Linux虚拟主机使用 Zendmail (Zend_Mail) 发送邮件方法
问题场景:
本文介绍在阿里云虚拟主机上使用 zend framwork发送邮件的方法。 虚拟主机上目前只支持通过 fsockopen的方式发送邮件。 Zend_Mail默认的发送邮件的方式是 stream_socket_client函数发送邮件的。虚拟主机禁用了此函数。 所以无法直接使用 Zend_Mail发送邮件。 可以通过修改默认的 Zend_Mail发送邮件的方式,实现使用 Zend_Mail发送邮件的功能。
温馨提示:
您修改程序代码前对当前文件进行备份后在进行操作,避免误操作后影响网站程序正常运行。
修改方法:
下载 zend framework之后,打开 library/Zend/Mail/protocol 目录,打开 Abstract.php 文件, 找到 protected function _connect($remote) 方法:
将
$this->_socket = @stream_socket_client($remote, $errorNum, $errorStr, self::TIMEOUT_CONNECTION);
修改为
$this->_socket = @fsockopen($remote, 25, $errorNum, $errstr, self::TIMEOUT_CONNECTION);
请注意,这里 fsockopen 的第二个参数“25”是邮件服务器的端口,一般默认是25,如果是其他端口,请做相应的修改。
做上述修改之后,到主机控制台打开 fsockopen 函数:
至此,主机的配置修改完毕。下面是测试代码:
<?php
require_once 'Zend/Mail.php';
require_once 'Zend/Mail/Transport/Smtp.php';
$tr=new Zend_Mail_Transport_Smtp("smtp.163.com",
array('auth'=>'login',
'port'=> '25',
'username'=>'xxxx@163.com',
'password'=>'xxxxx')); //发件人邮箱和密码
$mail = new Zend_Mail('UTF-8');
$mail->setSubject('This is a test email');
$mail->setFrom("<a style="FONT-FAMILY: 微软雅黑,Microsoft YaHei; FONT-SIZE: 14px; TEXT-DECORATION: underline" href="mailto:xxxx@163.com",'aaa'">xxxx@163.com",'aaa'); //发件人邮箱
$mail->addTo("<a style="FONT-FAMILY: 微软雅黑,Microsoft YaHei; FONT-SIZE: 14px; TEXT-DECORATION: underline" href="mailto:xxxx@126.com",'aaa'">xxxx@126.com",'aaa'); //收件人邮箱
$mail->setBodyText('');
$mail->setBodyHtml("Test EmailTest email
Test email
");
if(false == $mail->send($tr) ) {
echo ("fail");
}
else {
echo ("success");
}
$tr->__destruct();
?>
将上述代码中的发件人邮箱和收件人邮箱替换成您的邮箱。
然后把代码写入php文件,上传到主机,访问该网页,如果现实success,则发送邮件成功。检查邮件即可。
阿里云代理商凯铧互联提供阿里云服务器/企业邮箱等产品的代购服务,同样的品质,更多贴心的服务,更实惠的价格。 阿里云代理商凯铧互联会为您提供一对一专业全面的技术服务,同时还能为您提供阿里云其他产品购买的专属折扣优惠。通过凯铧互联购买可以获得折上折优惠!若您需要帮助可以直接联系我方客服,阿里云代理商凯铧互联专业技术团队为您提供全面便捷专业的7x24技术服务。
为什么选择我们:北京凯铧互联科技有限公司(简称凯铧互联)由多名前阿里云资深技术专家创立,核心员工来自阿里巴巴、腾讯等,作为阿里云,腾讯云百度云,金山云重要的合作伙伴,专注于为企业用户提供云计算及云计算的解决方案。总部设在北京,并在内蒙设有办事处。做为一家综合性方案商,凯铧互联向各行业用户提供基于云计算的各种解决方案。为用户获得优质服务的同时,秉承"专业规划、周到服务"的服务理念,根据用户的实际情况,充分考虑各种网络资源的特点及功效,为用户量身定做一套适合于其实际应用需求的网络应用方案。帮助用户利用互联网的力量展开新的营销方式,并大大缩短了项目实施周期,获得用户的一致好评。