phpmailer smtp问题

时间:2012-09-05 21:02:56

标签: php email smtp phpmailer

最近我的主机对我的服务器进行了有关垃圾邮件的更改。

  

我发现你的垃圾邮件正在发送大量垃圾邮件   服务器:

     

root @ server2 [〜] #exiqgrep -r * ** * * .com -c 5814匹配   6122条消息

     

这意味着 * ** * * .com是5,814的收件人   从您的服务器发送的消息。我删除了这些消息   从队列中增加了邮件日志和安全级别   你的服务器。我还禁止你的服务器是开放的   中继,似乎是邮件的发送方式。有一个   这很可能导致延误,但问题仍然存在   你有一个试图发送邮件的被劫持的脚本/帐户   这个比率。服务器现在设置为不从任何其他用户发送邮件   而不是SMTP用户,root和mailman;因此,您必须确保   任何邮件脚本都正确使用SMTP身份验证。您可以   在此处找到有关如何操作的更多信息:

     

http://email.about.com/od/emailprogrammingtips/qt/PHP_Email_SMTP_Authentication.htm

     

我还强烈建议打开DKIM和SPF记录(其中   可以在“邮件身份验证”下的cPanel中完成任何和所有操作   这台服务器上的域名会降低机会   退回/拒绝邮件以及被列入黑名单的垃圾邮件   已经出去了。我也在运行恶意软件扫描    * ** * * 帐户,并已关闭默认电子邮件地址。一世   无论是否存在,扫描完成后都会通知您   任何命中。

我的脚本现在必须使用SMTP身份验证。现在我在更新代码后遇到错误。

  

警告:fsockopen()[function.fsockopen]:php_network_getaddresses:   getaddrinfo失败:名称或服务未知   第89行/home/*/public_html/fkg/lib/phpmailer/class.SMTP.php

     

警告:fsockopen()[function.fsockopen]:无法连接   邮件。 ** * ** .com:25(php_network_getaddresses:getaddrinfo   失败:名称或服务未知)   第89行/home/*/public_html/fkg/lib/phpmailer/class.SMTP.php   SMTP - >错误:无法连接到服务器:php_network_getaddresses:   getaddrinfo失败:名称或服务未知(0)邮件程序错误

     

描述:SMTP错误:无法连接到SMTP主机服务器

这是我的代码

$mail = new phpmailer();
$mail->SMTPDebug = 1;
$mail->IsSMTP();  // telling the class to use SMTP
$mail->Host = "mail.***.************.com"; // SMTP server
$mail->Port = "25"; 
$mail->SMTPAuth  = true;   //we need to autenticate to the server
//$mail->SMTPSecure = "ssl";  //we use ssl to protected the flow of info
$mail->Username = "noreply+*****.com"; //account 
$mail->Password = "********"; //password

关于正在发生的事情的任何想法。提前谢谢。

1 个答案:

答案 0 :(得分:2)

好的,在一天结束后,经过长时间的聊天......

几个问题。在这种情况下,另一侧的服务器是exim,只允许您在使用EHLO命令命中后进行身份验证。使用的PHPMailer不允许您强制使用EHLO,因此针对exim服务器的身份验证不起作用。

切换到PEAR::Mail + PEAR::Net_SMTP + PEAR::Net_Socket“修复了”问题。

参考文献:

  1. http://pear.php.net/package/Mail/download/
  2. http://pear.php.net/package/Net_SMTP/download
  3. http://pear.php.net/package/Net_Socket/download