【问题标题】:Remove PHPMailer's From: 127.0.0.1 header删除 PHPMailer 的 From: 127.0.0.1 标头
【发布时间】:2015-04-02 21:33:42
【问题描述】:

当我通过知名的 UA(例如 Outlook、Roundcube...)发送电子邮件时,一切都很好

但是

当我尝试使用 PHPMailer 发送程序化电子邮件时,我在发送的邮件标题中遇到了问题:

Received: from www.domain.tld (hostname.domain.tld [127.0.0.1])
    by hostname.domain.tld (Postfix) with ESMTP id C4D7232C14EB
    for <me@somedomain.com>; Tue, 3 Feb 2015 16:23:17 +0100 (CET)

www.domain.tld 是我的脚本所在网站的网址,hostname.domain.tld 显然是服务器的 FQDN。

这是我的代码:

$mail = new PHPMailer;
$mail->SMTPDebug = false;
$mail->isSMTP();
$mail->Host = 'localhost';
$mail->From = 'samplesender@sampledomain.tld';
$mail->FromName = 'Some sender name';
$mail->addAddress($emailadresa, $ime);
$mail->CharSet = 'UTF-8';
$mail->isHTML(true);                                 
$mail->Subject = 'Email subject';
$mail->Body = $htmlBody;
$mail->XMailer = ' ';

我还注意到 from www.domain.tld 在我通过知名 UA 发送电子邮件时不存在的标题中。

使用 PHPMailer 发送时如何去掉 127.0.0.1 标头?

【问题讨论】:

  • 那是 Postfix 添加该标题。它在by 文本中这么说。无论如何,您对源 IP 有什么顾虑?
  • 这与PHPMailer无关。那是您的 SMTP 服务器说邮件最初是从“本地”tcp 连接接收的。
  • 但是@MarcB,当我使用 Roundcube 发送时,这也是本地 tcp 连接。
  • @mario 当我错误地使用from: localhost 127.0.0.1 发送邮件时,我遇到了严重的麻烦(被微软的服务器阻止)
  • Roundcube 可能没有发送到本地主机 - 它可能通过 PHP mail() 函数(PHPMailer 中的 isMail())调用 sendmail

标签: php email phpmailer postfix-mta email-headers


【解决方案1】:

尝试使用身份验证:

$mail->SMTPAuth   = true;
$mail->Host       = XX;
$mail->Port       = XX;
$mail->Username   = XX;
$mail->Password   = XX;

这样,您将使用电子邮件帐户的主机

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-06
    • 2012-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-28
    • 1970-01-01
    相关资源
    最近更新 更多