<code>SMTP server error: 5.7.1 : Relay access denied </code>
登陆服务器用mail -s "test" *****@qq.com 测试过smtp服务器是可以发送邮件的。为什么用PHP写的函数就被拒绝了呢?这段函数以前是起作用的,而且丝毫没动过。
<code>public function SendMail($address,$title,$message) { vendor('PHPMailer.class#phpmailer'); $mail=new PHPMailer(); // 设置PHPMailer使用SMTP服务器发送Email $mail->IsSMTP(); // set HTML $mail->ishtml(true); // 设置邮件的字符编码,若不指定,则为'UTF-8' $mail->CharSet='UTF-8'; // 添加收件人地址,可以多次使用来添加多个收件人 $mail->AddAddress($address); // 设置邮件正文 $mail->Body=$message; // 设置邮件头的From字段。 $mail->From=C('MAIL_ADDRESS'); //设置发件人名字 $mail->FromName=C('MAIL_SENDER'); // 设置邮件标题 $mail->Subject=$title; // 设置SMTP服务器。 $mail->Host=C('MAIL_SMTP'); // 设置为“需要验证” $mail->SMTPAuth=true; // 设置用户名和密码。 $mail->Username=C('MAIL_LOGINNAME'); $mail->Password=C('MAIL_PASSWORD'); // 发送邮件。 $mail->Send(); return $mail; } </code>
<code>SMTP server error: 5.7.1 : Relay access denied </code>
登陆服务器用mail -s "test" *****@qq.com 测试过smtp服务器是可以发送邮件的。为什么用PHP写的函数就被拒绝了呢?这段函数以前是起作用的,而且丝毫没动过。
<code>public function SendMail($address,$title,$message) { vendor('PHPMailer.class#phpmailer'); $mail=new PHPMailer(); // 设置PHPMailer使用SMTP服务器发送Email $mail->IsSMTP(); // set HTML $mail->ishtml(true); // 设置邮件的字符编码,若不指定,则为'UTF-8' $mail->CharSet='UTF-8'; // 添加收件人地址,可以多次使用来添加多个收件人 $mail->AddAddress($address); // 设置邮件正文 $mail->Body=$message; // 设置邮件头的From字段。 $mail->From=C('MAIL_ADDRESS'); //设置发件人名字 $mail->FromName=C('MAIL_SENDER'); // 设置邮件标题 $mail->Subject=$title; // 设置SMTP服务器。 $mail->Host=C('MAIL_SMTP'); // 设置为“需要验证” $mail->SMTPAuth=true; // 设置用户名和密码。 $mail->Username=C('MAIL_LOGINNAME'); $mail->Password=C('MAIL_PASSWORD'); // 发送邮件。 $mail->Send(); return $mail; } </code>
PHPMailer会使用那些经常被ISP方禁用的函数,如popen,你可以用phpinfo()查询一下disable_functions的值,看看是否关多了function。
问题解决了,感谢大家的回答。最后看error发现是因为重启sasl后会把/var/run/saslauthd变成710。所以需要chmod.
我是用thinkphp框架的 ,也起到了这种问题 可以帮忙解决一下吗