我在位于多个站点的不同计算机上使用php应用程序(不是相同的网络=不同的IP地址),我的mail.err文件中出现错误:
Authorization failed (534 5.7.14 https://support.google.com/mail/answer/78754 n31sm9662128qte.40 - gsmtp)
直到我登录gmail帐户并使用发送给我的代码进行授权。帐户已正确配置。禁用2种方式验证,并激活参数“允许不太安全的应用程序”。
这是我使用的代码:
$headers = "MIME-Version: 1.0" . PHP_EOL;
$headers .= "Content-type: text/html; charset=utf-8" . PHP_EOL;
//Additional headers
$headers .= "From: custom_email@gmail.com" . PHP_EOL;
$headers .= "Reply: custom_email@gmail.com" . PHP_EOL;
$headers .= "Content-type: text/plain" . PHP_EOL;
try {
if(mail($to, $subject, $message, $headers)){
echo 1;
}
else{
echo 2;
}
}
catch (Exception $e){
echo $e->getMessage();
}
此外,这是smtp.conf
文件
root=custom_email@gmail.com
UseSTARTTLS=YES
mailhub=smtp.gmail.com:587
AuthUser=custom_email@gmail.com
AuthPass=customPwd
rewriteDomain=gmail.com
FromLineOverride=YES
hostname=localhost
和revaliases.conf
root:custom_email@gmail.com:smtp.gmail.com:587
我必须从每个客户端安装的帖子访问gmail帐户...这是不可能的,因为我们并不总是在安装计算机时在现场,我们不想让我们的客户访问我们的Gmail帐户。这是一个好方法吗?有更好的解决方案吗?我们做错了什么?
请注意,此计算机是安装在xUbuntu上的小型LAMP服务器,安装极少。所以我们没有客户的电子邮件帐户,我们使用gmail的原因。