• 技术文章 >php教程 >php手册

    让Hostmonster的网站程序也能发送邮件

    2016-06-13 09:39:19原创538
    HostMonster网站程序一般无法发送邮件,因为端口25阻塞了。

    许多ISP屏蔽了端口25的使用,而该端口是用来发送邮件的。他们这样做是为了减少垃圾邮件的发送量。所有通过Internet发送的 e-mail 都要通过端口25, 该通道用来进行e-mail 客户端和 e-mail服务器之间的通信。

    虽然端口25屏蔽很可能成为一个工业标准,但是过滤器会给 e-mail服务器带来麻烦,导致正常的邮件被当成垃圾邮件处理。

    端口25屏蔽可以帮助网络服务供应商们阻止垃圾信息在他们的网络上的传播,但是这样的话,会给那些有需求使用e-mail服务器发送邮件的人带来麻烦,这些服务器不仅仅是他们自己的ISP提供的。

    屏蔽端口25的网络服务供应商要求使用他们的SMTP服务器,而不是远程SMTP服务器或自己电脑上运行的SMTP服务器。

    还好的是,HostMonster开放了26端口给SMTP服务器。

    我们先到 CPanel -> Email Accounts,创建一个邮件账户。

    然后到 CPanel -> webmail -> Configure Mail Client,可以得到下面配置信息:

    Manual Settings
    
    Mail Server Username: bkjia+bkjia.com
    Incoming Mail Server: mail.bkjia.com
    Incoming Mail Server: (SSL) host.hostmonster.com
    Outgoing Mail Server: mail.bkjia.com (server requires authentication) port 26
    Outgoing Mail Server: (SSL) host.hostmonster.com  (server requires authentication) port 465
    Supported Incoming Mail Protocols: POP3, POP3S (SSL/TLS), IMAP, IMAPS (SSL/TLS)
    Supported Outgoing Mail Protocols: SMTP, SMTPS (SSL/TLS)
    

    提示:smtp服务器是 mail.yourdomain.com,端口是26,帐号是你的邮箱的完整地址 xxxx@xxx.com,密码就是你的邮箱密码。按照提示设置好,就可以使用hostmonster主机提供的SMTP服务了。

    示例程序如下,程序使用了PHPmailer库:

    function mailto($nickname, $address)
    {
    	$this->load->helper('url');
    	date_default_timezone_set('PRC'); 
    	include_once("application/controllers/class.phpmailer.php");
    	
    	$mail = new PHPMailer(); // defaults to using php "mail()"
    	
    	$mail->IsSMTP(); // telling the class to use SMTP
    	$mail->IsHTML(true);
    	$mail->Host       = "mail.bkjia.com"; // SMTP server
    	$mail->SMTPDebug  = 1;                     // enables SMTP debug information (for testing)
    											   // 1 = errors and messages
    											   // 2 = messages only
    	$mail->SMTPAuth   = true;                  // enable SMTP authentication
    	$mail->Host       = "mail.bkjia.com"; // sets the SMTP server
    	$mail->Port       = 26;                    // set the SMTP port for the GMAIL server
    	$mail->Username   = "bkjia@bkjia.com"; // SMTP account username
    	$mail->Password   = "********";        // SMTP account password
    	
    	$mail->CharSet="utf-8"; 
    	
    	//$body = file_get_contents('application/views/nmra/register.html');
    	//$body = preg_replace('/\\\\/','', $body); //Strip backslashes
    	$body = '';
    	$body .= '
    '; //$body .= '
    '; $body .= '

    '.$nickname.',您好。

    '; $body .= '请点击以下链接验证您的邮箱,请注意域名为bkjia.com:'.base_url().'accounts/activation/'; $body .= '

    顺祝工作学习愉快,生活舒心。

    '; $body .= '
    '; //echo $body; $mail->AddReplyTo("bkjia@163.com","Gonn"); $mail->SetFrom('bkjia@163.com', 'Gonn'); $mail->AddReplyTo("bkjia@163.com","Gonn"); $mail->AddAddress($address, $nickname); $subject = "收到来自帮客之家的邮件"; $mail->Subject = "=?UTF-8?B?".base64_encode($subject)."?="; // optional, comment out and test $mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; $mail->MsgHTML($body); //$mail->AddAttachment("//m.sbmmt.com/m/article/images/phpmailer.gif"); // attachment //$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment if(!$mail->Send()) { //echo "Mailer Error: " . $mail->ErrorInfo; } else { //echo "Message sent!"; } }

    OK,现在网站程序就能发邮件了。但是并非所有邮箱都能收到,这里测试的话,163,gmail等都能正常收到,而qq则收不到。如果你有更好的方法,请告知我,感谢。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Hostmonster 邮件
    上一篇:PHP编程中需要注意的10个问题 下一篇:CodeIgniter自带的数据库类使用介绍
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• wordpress添加文章浏览统计(刷新不重复)• PHP中使用MySQL按照多字段排序及问题解决• PHP更新购物车数量(表单部分/PHP处理部分)• 创建配置文件 用PHP写出自己的BLOG系统 2• PHP 文件上传功能实现代码
    1/1

    PHP中文网