phpMailer SMTP工作在一个设置,但不是另一个(SMTP 535不正确的身份验证数据)

时间:2012-06-17 10:35:55

标签: php apache smtp phpmailer

来自http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php5_6/PHPMailer%20v5.1/的PHPMailer

在我的“离线”WAMP设置(localhost)中,我通过Gmail使用PHPMailer的PHP文件完美运行(在我记得打开php_openssl之后)。这表明我的PHP代码和Gmail设置是正确的。

然而,在我的“在线”托管服务提供商处,我收到“错误:服务器不接受密码:535验证数据不正确”。

535表示密码不正确,但它是上传的相同文件。因此我认为这是服务器配置问题,但不知道从哪里开始。我已经比较了phpinfo(),并且两者都启用了openSSL - 任何建议?

3 个答案:

答案 0 :(得分:0)

只是一个想法,但也许你的密码中有特殊字符,这就是为什么它不匹配?另外你可能想尝试使用你的本地php.ini来确保它不是问题,当然只是一秒钟

答案 1 :(得分:0)

似乎就像你描述环境问题一样。可能您在线(或生产)托管比您的localhost环境更安全。某种防火墙可能阻止您连接到出站套接字/端口。通常是出站SMTP端口的实践。

要检查这是否是您的问题,请测试哪些端口可用。你有很多方法可以做到这一点。

<强>用netstat

netstat -l -t -p

<强>腓

$p = fsockopen( '127.0.0.1', <port number>, $errno, $errstr, 5 );
if ( !$p )
    // port is closed or blocked
else
    // port is open and available
    fclose( $p );

<强>的Python

#!/usr/bin/env python
from socket import * 

if __name__ == '__main__':
    target = raw_input('Enter host to scan: ')
    targetIP = gethostbyname(target)
    print 'Scanning on host ', targetIP

    for i in range(20, 1025):
        s = socket(AF_INET, SOCK_STREAM)

        result = s.connect_ex((targetIP, i))

        if(result == 0) :
            print 'Port %d: OPEN' % (i,)
        s.close()

答案 2 :(得分:0)

听起来您的远程主机未配置反向DNS,或者IP地址可能会根据SenderBase /类似的值进行速率限制。

此问题的间歇性显示将排除路由或您的物理凭据或防火墙等问题。它会使问题更多地掌握在速度限制,服务质量等方面。

检查上面的SenderBase以查找无效的主机,看看它的评级是否差。我敢打赌,正在工作的主持人得分很高或根本没有列出。