我最近用PHPMailer 想用 公司的 Lotus Notes SMTP服务器转发,接收MAIL,但是遇到点问题我用SMTP.163.COM 可以发送MAIL,用以下代码可以发送MAIL,include 'includes/class.phpmailer.php';$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPDebug=true;
$mail->Host = 'smtp.163.com';
$mail->Port = '25';
$mail->SMTPAuth = true;
$mail->Username = 'van416';
$mail->Password ='XXXXXX';
$mail->From = "[email protected]";
$mail->FromName = "van416";
$mail->CharSet = 'UTF-8';
$mail->Encoding = "base64";$mail->AddAddress('[email protected]');
$mail->IsHTML(true); // send as HTML
$mail->Subject = '测试邮件标题'.date('Y-m-d H:i:s');
$mail->Body = '测试邮件内容';
var_dump($mail->Send());
但是将$mail->Host = 'smtp.163.com'; 改成
$mail->Host = 'smtp.niss.com'; ,显示不能连接到SMTP服务器的错误,当能其他USERNAME,PASSWORD的也更改了
将$mail->Host = 'smtp.niss.com'; 改成 公司服务器
$mail->Host = '192.168.0.3';
依旧不行,Lotus Notes 是跟163一样的服务器吗? 为什么 telnet smt.163.com 25 可行,而 telnet smt.niss.com 25 却不行呢??很郁闷~~~
$mail->IsSMTP();
$mail->SMTPDebug=true;
$mail->Host = 'smtp.163.com';
$mail->Port = '25';
$mail->SMTPAuth = true;
$mail->Username = 'van416';
$mail->Password ='XXXXXX';
$mail->From = "[email protected]";
$mail->FromName = "van416";
$mail->CharSet = 'UTF-8';
$mail->Encoding = "base64";$mail->AddAddress('[email protected]');
$mail->IsHTML(true); // send as HTML
$mail->Subject = '测试邮件标题'.date('Y-m-d H:i:s');
$mail->Body = '测试邮件内容';
var_dump($mail->Send());
但是将$mail->Host = 'smtp.163.com'; 改成
$mail->Host = 'smtp.niss.com'; ,显示不能连接到SMTP服务器的错误,当能其他USERNAME,PASSWORD的也更改了
将$mail->Host = 'smtp.niss.com'; 改成 公司服务器
$mail->Host = '192.168.0.3';
依旧不行,Lotus Notes 是跟163一样的服务器吗? 为什么 telnet smt.163.com 25 可行,而 telnet smt.niss.com 25 却不行呢??很郁闷~~~
2.确定一下你们的smtp服务器端口是不是25?
3.看看你们的邮件客户端是怎么设置的?客户端是怎么设置来通过你们的邮件服务器来收发邮件的?根据客户端的设置修改一下phpmailer代码
如果正常的话,而且192.168.0.3的smtp是25的话,那应该telnet成功的,你再检查一下
现在不是phpmailer的问题,是你网络的问题,先检查网络吧
按照思想,用FOR循环,怎么错了~$sendto_email = array ('[email protected]','[email protected]');smtp_mail($sendto_email,'测试主题','测试内容');function smtp_mail ($sendto_email, $subject, $body) {
// 请求 PHPmailer类 文件
require_once("class.phpmailer.php");
for ($i=0;$i<count($sendto_email);$i++) {
$mail = new PHPMailer();
$mail->IsSMTP(); // send via SMTP
$mail->Host = "smtp.163.com"; // SMTP servers
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "van416"; // SMTP username 注意:普通邮件认证不需要加 @域名
$mail->Password = "XXXXXX"; // SMTP password $mail->From = "[email protected]"; // 发件人邮箱
$mail->FromName = "异常反馈系统"; // 发件人 ,比如 异常反馈系统 $mail->CharSet = "UTF-8"; // 这里指定字符集!
$mail->Encoding = "base64";
$mail->AddAddress($sendto_email['$i'][0]); // 收件人邮箱和姓名
$mail->IsHTML(true); // send as HTML
$mail->Subject = $subject; // 邮件内容 可以直接发送html文件
$mail->Body = $body;
if($mail->Send()){
echo '发送成功';
} else {
echo '失败,错误信息'.$mail->ErrorInfo;
}
}
}
里面是不是写错了,
不过不要大量的发哦,用163这些大的邮件服务器群发,发一段时间,邮件服务器就会禁止你继续发了,服务器会认为你发送垃圾邮件.
即使你用你们公司的服务器大量发送,那么过几天,说不定你公司的服务器就会被其他的邮件服务器认为是发送垃圾邮件的,列入黑名单,就会拒绝你公司服务器发送的邮件