【问题标题】:Setting from address in phpmailer webforms从 phpmailer 网络表单中的地址设置
【发布时间】:2019-06-24 14:49:24
【问题描述】:

我正在使用以下代码使用 phpmailer 6 发送电子邮件:


$mail->isSMTP();
$mail->Host = 'myhost';
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'tls';
$mail->Username = 'email@mydomain.com';
$mail->Password = 'password';
$mail->Port = '587';

$mail->ContentType = 'text/plain'; 
$mail->IsHTML(false);
$mail->setFrom('email@mydomain.com');
$mail->addReplyTo($_POST['email'], $_POST['name']);

$mail->addAddress($to);
$mail->Subject = $_POST['subject'];
$mail->Body    = "...";

$mail->send();

邮件成功发送到我们公司,但总是显示来自 email@mydomain.com,这使得员工很难在收件箱中找到特定的电子邮件。在表单中,用户提供了他们的姓名和电子邮件,因此理想情况下,我希望它在 Outlook 中显示为来自 John Doe (jdoe@gmail.com) 而不是 email@mydomain.com。

在旧版本的网络表单中,我通过设置发件人地址来做到这一点,但现在这似乎不可能,因为它被认为是欺骗。

有没有办法做到这一点?

【问题讨论】:

    标签: php webforms phpmailer


    【解决方案1】:

    只需在setFrom 中添加名称作为第二个参数。请看下面的例子:

    $mail->setFrom('darth@empire.com', 'Darth Vader');
    

    它会按照你的意愿出现!

    【讨论】:

    • 试过了。它仍然显示为我在 email@mydomain.com 帐户中设置的名称。
    • 这是正确的做法,但是,许多电子邮件客户端会忽略它,尤其是如果您之前收到过来自该地址的其他邮件,而您对此无能为力。
    • 谢谢。我们在 Office 365 上,我想知道设置是否阻止它显示。我将使用上面的 setFrom 代码,以防它可能适用于某些客户。
    • @user1480951 可能会检查他们的docs 并确保名称格式正确?还要检查 office365 的原始电子邮件,看看发件人名称是否完整且正确。您可以测试向 gmail 帐户发送消息,看看是否正确。
    猜你喜欢
    • 2011-01-17
    • 2014-05-25
    • 1970-01-01
    • 2013-05-20
    • 2020-11-27
    • 1970-01-01
    • 2015-09-18
    • 2016-11-17
    • 1970-01-01
    相关资源
    最近更新 更多