![](/img/trans.png)
[英]Using SMTP PHPMailer for 'Domain' email address, email sent but not recieved
[英]PHPMailer using SMTP username as senders email address
因此,我正在尝试使用当前版本的PHPMailer( https://github.com/PHPMailer/PHPMailer )发送电子邮件。 SMTP连接和邮件发送正常,但脚本未对发件人邮件使用“ SetFrom” $ email变量,而是对“用户名”电子邮件使用。
我尝试使用多种形式设置“发件人”邮件,但似乎没有任何效果,尽管要注意的是,“ SetForm”中的“名称”设置得很好,而“ email”却没有。
这是代码:
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = 'USERNAME(MY EMAIL)';
$mail->Password = 'PASSWORD';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->isHTML(true);
$mail->SetFrom($email,$name);
$mail->addAddress($email_received);
$mail->Subject = $subject;
$mail->Body = $user_msg;
如果您检查收到邮件的标题,则会发现SetFrom
电子邮件ID定义为X-Google-Original-From
。
这是因为Gmail会自动将您通过其SMTP服务器发送的任何电子邮件的“发件人”行改写为Gmail或Google Apps电子邮件帐户设置中的默认“作为电子邮件发送”电子邮件地址。
如果您确实想使用Gmail作为电子邮件提供商,则需要打开一个Google Apps帐户并确认您拥有用于电子邮件ID的域。
也有针对此问题的解决方法(但不建议这样做):
在您的Gmail设置中,转到“帐户”标签,然后在“ Send mail as
部分中添加您拥有的另一个电子邮件地址。 这将导致谷歌的SMTP服务器重新写的从你启用任何地址作为缺省的字段Send mail as
地址。 在这里,您需要输入域的smtp设置。 因此,当您使用此设置发送电子邮件时,PHPMailer将连接到Gmail,而Gmail将连接到您的SMTP服务器,然后再发送任何电子邮件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.