PHPMailer - 将电子邮件转发给组

时间:2017-03-25 17:40:24

标签: php phpmailer

我的组织中的每个人都需要向群组中的其他人发送电子邮件。

由于会员数以百计,会员资格经常变化,因此使用传统的CPanel电子邮件转发方法是不切实际的。所以我想我会将电子邮件发送到php脚本,从数据库中获取所有成员的电子邮件地址(检查以确保原始发件人也在数据库中)并使用PHPMailer将电子邮件发送给所有成员。

我解析了PHP脚本中的标题,以获取From,Subject(当然将这些添加到PHPMailer),Content-Type和boundary。然后我在变量$ message中收集了实际的电子邮件消息,其中包括说明(在这种情况下)

的行
“This is a multi-part message in MIME format.
--------------3D4FAACFC2C069EFCDAE6DC6, etc.  (This is of course in text format.)

在PHPMailer Send命令之前,我包括:

$mail -> IsHTML(false);
// (I also tried not including this command at all – no change)
$mail->Body =$message;  
$mail->addCustomHeader("Content-Type", $content_type . "  boundary=" . $boundary);

 $content_type and $boundary are the variables I parsed from the original header

由于这仍在开发中,我只将电子邮件发送到我的地址。它被正确接收和显示(普通和html都像往常一样),但被标记为垃圾邮件 - 收到的标题已将主题标记为垃圾邮件,所以我假设P​​HPMailer做到了。

我在收到的标题上注意到我的自定义标题显示正确:

 Content-Type: multipart/alternative;  boundary="------------3D4FAACFC2C069EFCDAE6DC6"

收到的标题还有另一个Content-Type:text / plain; charset = iso-8859-1之后,我假设PHPMailer添加了。也许两个内容类型是触发垃圾邮件标记的内容。然后我尝试添加$ mail-> header_remove(' Content-Type');在Body调用之后和addCustomHeader之前,但是附加的Content-Type:text / plain; charset = iso-8859-1仍然在收到的标题中,它仍被标记为垃圾邮件。

我正在使用PHPMailer版本5.2.22,并使用

$mail->IsSMTP();
, $mail->SMTPAuth = true; 
$mail->SMTPSecure = 'ssl';

我不能继续不成功地进行实验,因为我担心发送大量垃圾邮件会让我遇到麻烦,所以我希望有人能说出我做错了什么,或者即使我的整体策略存在缺陷。我希望有一种方法可以获得PHPMailer在实际发送邮件之前要使用的标头。

注意:我的组织是一个资金很少的慈善团体,因此我们无法负担付费的SMTP。我尝试使用市场上某些产品的免费版本(不适用于上述项目)但是鉴于您使用共享IP与许多其他人使用免费服务,您经常会收到电子邮件,因为其他人共享您的IP已经垃圾邮件已标记

由于

2 个答案:

答案 0 :(得分:0)

这是我从我的"转发到我的个人电子邮件(b ... @ .... com)的整个标题(我删除了一些内容只是为了让这个说明有点简短)电子邮件"使用每个人@ .... org作为起始地址的脚本。您可以通过$ mail-> addCustomHeader(" Content-Type",$ content_type。" boundary ="。$ boundary)看到我添加到PHPMailer的Content_Type;(这是multipart .. line)和一个PHPMailer本身添加(text / plain ...)。除了添加到主题行的垃圾邮件外,电子邮件收到了正确并正确显示:

From - Sat Mar 25 12:51:13 2017
STUFF                                                                           
Return-Path: <everybody@....org>
Received: from dnvrco-pub-iedge-vip.email.rr.com ([107.14.70.244])
          by dnvrco-fep06.email.rr.com
          (InterMail vM.8.04.03.24 201-2389-100-172-20151028) with ESMTP
          id <20170325165112.EUNA23395.dnvrco-fep06.email.rr.com@dnvrco-pub-iedge-vip.email.rr.com>
          for <bmadder@...>; Sat, 25 Mar 2017 16:51:12 +0000
Return-Path: <everybody@....org>
Received: from [173.205.126.142] ...
Received: from ecbiz194.inmotionhosting.com .....
Date: Sat, 25 Mar 2017 12:51:01 -0400
To: b...@....com
From: everybody@....org
Message-ID: ...
Content-Type: multipart/alternative;  boundary="------------3D4FAACFC2C069EFCDAE6DC6"
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse:...
X-Get-Message-Sender-Via: ecbiz194.inmotionhosting.com: authenticated_id: everybody@....org
X-Authenticated-Sender: ecbiz194.inmotionhosting.com: everybody@....org
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-Authority-Analysis: v=2.1 cv=Od5ldUnY c=1 sm=1 tr=0 p=tHMjoff1TzQA:10 a=BPsZ5WN3F+ptBTNoNLYonA==:117 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10 a=s5jvgZ67dGcA:10 a=9+rZDBEiDlHhcck0kWbJtElFXBc=:19 a=6Iz7jQTuP9IA:10 a=FqPqrT7mAAAA:8 a=wuaQj91YKeLcW_I7NZUA:9 a=FtJ_xtNkBE-qfxEx:21 a=wPNLvfGTeEIA:10 a=yozH4VhRfl4A:10 a=M3AHoUkWFckA:10 a=fZGknuNN1LOydenUCIb6:22
X-Cloudmark-Score: 100
X-RR-Connecting-IP: 107.14.64.106:25
Subject: SPAM: Lots of work today
X-Brightmail-Tracker: AAAAARZYL6Q=
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrDqMTGxcIABLocC65FGFx/aGGx78B3FgdGj+Mv3jMFMEZx+OWXKAQXJOYmcGT07L7AVsBQAaIaGBlWMSqUlBYbF2cUJxYVF6RWGJjrpacW6xVX5ibmlaQm6yXn525ihJq+g3H7RZlTjJJS4ry3512LEBIoBpqYUQpUVxRfVJqTWvyKUZyDUUmYNxcky5OZV1KcmQ6TkeBgUhLhNdl4JUKIt7gkESEl1cDY81CZ25t3k/zUd21bd90/typmy6NtErw+Xs/YlXtk7atb4j4+/t6yoHDeJ3uN/kP1P7LrIiY5fFipZfynvvPJzbNfz943kPtyweqk3Tn/vpOfGIosVIpPxHht7j+Rl24XEH2vJa1o/q3fJRonvyxi6D4x60xlW8M/o0oLBlvjw4672ZjKQg2UWIozEg21mIuKEwGcu2V6TwEAAA==

This is a multi-part message in MIME format.
--------------3D4FAACFC2C069EFCDAE6DC6
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

This is the text message

--------------3D4FAACFC2C069EFCDAE6DC6
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit

<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>This is the text message <br>
    </p>
  </body>
</html>

--------------3D4FAACFC2C069EFCDAE6DC6--

答案 1 :(得分:0)

我现在有了解决方案。我没有使用$mail->addCustomHeader("Content-Type", $content_type . " boundary=" . $boundary);行,而是将变量$ boundary附加到变量$ content_type并使用$mail->ContentType = $content_type;我的邮件转发脚本现在与垃圾邮件标签完美匹配不再是问题。发送给最终收件人的标头不再具有MIME部分

中列出的重复内容类型