日期:2014-05-17  浏览次数:20455 次

phpmailer 本地测试提示发送成功,可是邮箱内无法接收
求各位大侠指点,

<?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";                  // SMTP 安全协议
$mail->Host       = "smtp.163.com";       // SMTP 服务器
$mail->Port       = 465;                    // SMTP服务器的端口号
$mail->Username   = "123456@163.com";  // SMTP服务器用户名
$mail->Password   = "123456";        // SMTP服务器密码
$mail->SetFrom('123456@163.com', '123456');    // 设置发件人地址和名称
$mail->AddReplyTo("123456@163.com","123456"); 
                                            // 设置邮件回复人地址和名称
$mail->Subject    = '';                     // 设置邮件标题
$mail->AltBody    = "为了查看该邮件,请切换到支持 HTML 的邮件客户端"; 
                                            // 可选项,向下兼容考虑
$mail->MsgHTML('<b>Hello, 简体,繁體!!</b>');                         // 设置邮件内容
$mail->AddAddress('123456@163.com', "123456");
$mail->SMTPDebug=true ;
//$mail->AddAttachment("images/phpmailer.gif"); // 附件 
if(!$mail->Send()) {
    echo "发送失败:" . $mail->ErrorInfo;
} else {
    echo "恭喜,邮件发送成功!";

?> 

------解决方案--------------------
$mail->Port       = 465;                    // SMTP服务器的端口号
为什么不用 25 端口呢?
------解决方案--------------------
注释掉这两句
$mail->SMTPSecure = "ssl";                  // SMTP 安全协议
$mail->Port       = 465;