首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >phpmailer:仅使用“回复”地址进行回复

phpmailer:仅使用“回复”地址进行回复
EN

Stack Overflow用户
提问于 2012-05-01 10:11:25
回答 2查看 129.6K关注 0票数 75

我在我的网站上使用phpmailer,并帮助解决垃圾邮件问题,我创建了一个邮箱(使用SMTP)发送这些电子邮件。

我已将来自邮箱地址的电子邮件设置为,然后将回复添加到地址,以便将回复发送到:

代码语言:javascript
复制
$mail = new PHPMailer();

$mail->IsSMTP();
$mail->SMTPAuth   = true;
$mail->SMTPSecure = 'tsl';
$mail->SMTPDebug  = 1;
$mail->Host       = EMAIL_HOST;
$mail->Port       = EMAIL_PORT;
$mail->Username   = EMAIL_USER;
$mail->Password   = EMAIL_PASS;

$mail->SetFrom('mailbox@email.com', 'Mailbox name');
$mail->AddReplyTo('replyto@email.com', 'Reply to name');
$mail->AddAddress('user@email.com', 'User name);

电子邮件发送成功,似乎通过垃圾邮件过滤器ok,,但当我按下回复,它包括邮箱帐户和回复帐户

这就是我们想要发生的吗?我只希望在您按“回复”时出现“答复地址”。这有可能吗?

非常感谢您的帮助!

编辑:

查看电子邮件的标题,它似乎是从地址被包括在回复字段。我不知道为什么!

代码语言:javascript
复制
Date: Tue, 1 May 2012 11:16:25 +0100
To: User name <user@email.com>
From: Mailbox name <mailbox@email.com>
Reply-to: Mailbox name <mailbox@email.com>, Reply to name <replyto@email.com
Subject: Email subject
Message-ID: <54c530c0d1f3ff33fc87c4c41c2c9ffd@localhost>
X-Priority: 3
X-Mailer: PHPMailer 5.1 (phpmailer.sourceforge.net)
MIME-Version: 1.0
Content-Type: multipart/alternative;
     boundary="b1_54c530c0d1f3ff33fc87c4c41c2c9ffd"

--b1_54c530c0d1f3ff33fc87c4c41c2c9ffd
Content-Type: text/plain; charset = "iso-8859-1"
Content-Transfer-Encoding: 8bit
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-21 11:36:04

至少在当前版本的clearReplyTos()中,有一个函数PHPMailers可以清空应答数组。

代码语言:javascript
复制
    $mail->ClearReplyTos();
    $mail->addReplyTo(example@example.com, 'EXAMPLE');
票数 44
EN

Stack Overflow用户

发布于 2012-05-03 13:50:42

我已经找到了答案,这是令人讨厌的/令人沮丧的简单!基本上,对地址的答复需要在之前添加地址,如下所示:

代码语言:javascript
复制
$mail->addReplyTo('replyto@email.com', 'Reply to name');
$mail->SetFrom('mailbox@email.com', 'Mailbox name');

更详细地查看phpmailer代码,这是违规行:

代码语言:javascript
复制
public function SetFrom($address, $name = '',$auto=1) {
   $address = trim($address);
   $name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim
   if (!self::ValidateAddress($address)) {
     $this->SetError($this->Lang('invalid_address').': '. $address);
     if ($this->exceptions) {
       throw new phpmailerException($this->Lang('invalid_address').': '.$address);
     }
     echo $this->Lang('invalid_address').': '.$address;
     return false;
   }
   $this->From = $address;
   $this->FromName = $name;
   if ($auto) {
      if (empty($this->ReplyTo)) {
         $this->AddAnAddress('ReplyTo', $address, $name);
      }
      if (empty($this->Sender)) {
         $this->Sender = $address;
      }
   }
   return true;
}

具体而言,这一行:

代码语言:javascript
复制
if (empty($this->ReplyTo)) {
   $this->AddAnAddress('ReplyTo', $address, $name);
}

谢谢大家的帮助!

票数 170
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10396264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档