skip to Main Content

I have a need for everyone in my organization to send emails to everyone else in the group.

As there are hundreds of members, and the membership changes often, it is not practical to use the traditional CPanel email forwarding method. So I thought I would pipe the email to a php script, get all the members’ email addresses from the database (checking to make sure the original sender was also in the database) and send on the email to all members using PHPMailer.

I parsed the header in the PHP script to get the From, Subject (adding these of course to PHPMailer), Content-Type, and boundary. Then I collected the actual email message in a variable $message including the lines that say (in this case)

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

Just before the PHPMailer Send command, I included:

$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

As this is still in development, I sent the email to my address only. It was received and displayed properly (both the plain and html as usual), but was marked as Spam – the received Header had the Subject already marked as Spam so I assume PHPMailer did it.

I noticed on the received Header that my custom header appeared correctly:

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

The received header also had another Content-Type: text/plain; charset=iso-8859-1 after the above which I assume PHPMailer added. Maybe the two Content-Types is what triggered the Spam tag. I then tried adding $mail->header_remove (‘Content-Type’); after the Body call and before addCustomHeader, but the additional Content-Type: text/plain; charset=iso-8859-1 was still in the received header and it was still marked as Spam.

I am using PHPMailer version 5.2.22, and using

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

I can’t continue to unsuccessfully experiment forever as I am afraid sending lots of Spam emails will get me in trouble, so I am hoping someone can tell what I am doing wrong, or even if my overall strategy is flawed. I wish also there was a way to get the header that PHPMailer is going to use before it actually sends out the mail.

Note: my organization is a charitable group with little money, so we can’t afford paid SMTP’s. I’ve tried using the free versions of some on the market (not for the above project) but given you are using a shared IP with many others using the free service you often get emails kicked back because others sharing your IP have been Spam tagged

Thanks

2

Answers


  1. Chosen as BEST ANSWER

    This is the entire header (I deleted some of the content just to keep this note a bit brief) that I received to my personal email ([email protected]) from my "forward email" script which uses [email protected] as the originating address. You can see the Content_Type I added to PHPMailer via $mail->addCustomHeader("Content-Type", $content_type . " boundary=" . $boundary);(which is the multipart.. line) and the one PHPMailer itself added (text/plain...). The email was received fine and displayed properly except for the Spam added to the Subject line:

    From - Sat Mar 25 12:51:13 2017
    STUFF                                                                           
    Return-Path: <[email protected]>
    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: <[email protected]>
    Received: from [173.205.126.142] ...
    Received: from ecbiz194.inmotionhosting.com .....
    Date: Sat, 25 Mar 2017 12:51:01 -0400
    To: [email protected]
    From: [email protected]
    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: [email protected]
    X-Authenticated-Sender: ecbiz194.inmotionhosting.com: [email protected]
    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--
    

  2. I now have the solution. Rather than using the line of $mail->addCustomHeader("Content-Type", $content_type . " boundary=" . $boundary);, I appended the variable $boundary to the variable $content_type and used $mail->ContentType = $content_type; My mail forward script now works perfectly with the Spam label no longer an issue. The header that is sent to the final recipients no longer has duplicate Content-Types listed in the MIME part

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search