我最近用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 却不行呢??很郁闷~~~ 

解决方案 »

  1.   

    1.smtp.niss.com域名是不是设置正确?我这里ping不通,还是你们服务器的防火墙挡住了?
    2.确定一下你们的smtp服务器端口是不是25?
    3.看看你们的邮件客户端是怎么设置的?客户端是怎么设置来通过你们的邮件服务器来收发邮件的?根据客户端的设置修改一下phpmailer代码
      

  2.   

    1.程式中是我是瞎写的,真正的为  smtp.nisshotech.com.cn2.公司用的是Lotus Notes SMTP 服务器端口为 25,外网端口默认为:465 (好像只有这两个吧)3.邮件客户端只设置内网的IP:192.168.0.3但是我用telnet 192.168.0.3 25 依旧不通,是不是Lotus Notes 与 163的不一样啊谢谢`~
      

  3.   

    邮件客户端收发正常?
    如果正常的话,而且192.168.0.3的smtp是25的话,那应该telnet成功的,你再检查一下
      

  4.   

    可以ping通192.168.0.3?
    现在不是phpmailer的问题,是你网络的问题,先检查网络吧
      

  5.   

    可以PING 通,  因为我不知道Lotus Notes 的配置是不是跟163一样..
      

  6.   

    Sink,这个问题先搁浅一下另外一个问题,群发:
    按照思想,用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;

    }

    里面是不是写错了,
      

  7.   

    改一下.$mail->AddAddress($sendto_email['$i']);  
      

  8.   

    这样:$mail->AddAddress($sendto_email[$i]); 
    不过不要大量的发哦,用163这些大的邮件服务器群发,发一段时间,邮件服务器就会禁止你继续发了,服务器会认为你发送垃圾邮件.
    即使你用你们公司的服务器大量发送,那么过几天,说不定你公司的服务器就会被其他的邮件服务器认为是发送垃圾邮件的,列入黑名单,就会拒绝你公司服务器发送的邮件