我遇到了PHPMailer的问题。我希望自己发送一封电子邮件表格给我自己,当我的网站填写某个表格时(表格中包含信息),但我无法让它发挥作用。 PHP没有发送任何错误(我确保它已启用),但是使用SMTPDebug,我得到了这个:
2015-02-12 07:35:58 CLIENT -> SERVER: EHLO localhost
2015-02-12 07:35:58 CLIENT -> SERVER: MAIL FROM:
2015-02-12 07:35:58 CLIENT -> SERVER: RCPT TO:
2015-02-12 07:35:58 SMTP ERROR: RCPT TO command failed: 550 5.7.1 ... Relaying denied. Proper authentication required.
2015-02-12 07:35:58 CLIENT -> SERVER: QUIT
2015-02-12 07:35:58 SMTP Error: The following recipients failed: me@mydomain.com
以下是代码示例:
require("PHPMailer-master/PHPMailerAutoload.php");
$mail = new phpmailer();
$mail->IsSMTP();
$mail->SMTPDebug = 1;
$mail->Host = "smtp.server.com"; //Mod
$mail->From = "me@mydomain.com"; //Mod
$mail->FromName = "Automatic e-mail, no reply";
$mail->AddAddress("me@mydomain.com"); //Mod
$mail->Subject = "A student forgot his password";
$mail->Body = $class.'\r\n'.$fname.' '.$lname;
$mail->WordWrap = 70;
if(!$mail->Send())
$sent = false;
else
$sent = true;
(一行末尾的//Mod
表示我出于隐私原因修改了数据。)
现在,我已经通过评论此行了解了一些人:
mail->IsSMTP();
但是当我这样做时,我只会收到另一个错误:
无法实例化邮件功能
这对我来说似乎很合乎逻辑。
答案 0 :(得分:1)
服务器需要有效的经过身份验证的用户,您需要添加授权凭据。当然,更改SMTP服务器中有效授权凭据的用户名和密码值。
$mail->SMTPAuth = true;
$mail->Username = "yourauthorizeduser"; // It could be your@authorized.user"
$mail->Password = "v3rys3cr3t";