简体   繁体   中英

Python: Mail sent by script is marked as spam by Gmail

We have a python script that sends mails everyday to an xml list of addresses. Those mails are always marked as spam by Gmail. Here's the code:

            email_body =  '<html><body><div style="text-align: center; font-family: serif; font-size: 15px;"><br/><br/>@<br/><br/>' + text_splited[i] + '<br/><br/>@<br/><br/><a href="http://anemailstory.net/"><i>Tr@ces</i></a><br/><br/> - <br/><br/><a href="http://anemailstory.net/unsubscribe.html">unsubscribe</a><br/><br/></div></body></html>'  
#text corresponding to that subcription date    

            # email     
            msg = MIMEMultipart('alternative') #Create Multipart msg (allows html)
            msg['To'] = email.utils.formataddr(('Recipient', 'readers@traces.net'))
            msg['From'] = email.utils.formataddr(('Traces', 'traces@anemailstory.net'))
            msg['Subject'] = 'Tr@ces - Part #' + str((i+2))

            part_html = MIMEText(email_body, 'html')
            msg.attach(part_html)

            server = smtplib.SMTP('localhost')
            server.set_debuglevel(False) # show communication with the server
            try:
                server.sendmail('traces@noreply.net', email_addrs, msg.as_string())
            finally:
                server.quit()

And here's the generated email:

Return-path: <traces@noreply.net>
Envelope-to: mimmo@mimmo.com
Delivery-date: Wed, 25 Apr 2012 23:59:07 -0600
Received: from localhost ([127.0.0.1] helo=host131.hostmonster.com)
    by host131.hostmonster.com with esmtp (Exim 4.76)
    (envelope-from <traces@noreply.net>)
    id 1SNHjO-0006T0-C2; Wed, 25 Apr 2012 23:59:06 -0600
Content-Type: multipart/alternative;
    boundary="===============1468314745133566460=="
MIME-Version: 1.0
To: Recipient <readers@traces.net>
From: Traces <traces@anemailstory.net>
Subject: Tr@ces - Part #9
X-Identified-User: {:host131.hostmonster.com:andrecas:host131.hostmonster.com} {sentby:program running on server}

--===============1468314745133566460==
Content-Type: text/html; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

<html><body><div style="text-align: center; font-family: serif; font-size: 15px;"><br/><br/>@<br/><br/><br/>Mail content<br/><br/><br/>@<br/><br/><a href="http://anemailstory.net/"><i>Tr@ces</i></a><br/><br/> - <br/><br/><a href="http://anemailstory.net/unsubscribe.html">unsubscribe</a><br/><br/></div></body></html>
--===============1468314745133566460==--

Do you have any solution for this?

Thanks.

You email consists of almost only HTML and a link. That smells like spam.

Suggestions:

  • Send a plaintext email (less likely to be considered spam - and more comfortable for many users)
  • If you use HTML, always include a plaintext version
  • Improve the text-to-links/html ratio.

Hum... depends on the signature of the SMTP, which might be close to "spam".

  1. try to change the "noreply.net" thing to a real domain

  2. It also might be that the Servers Hostname *.hostmonster.com is on a spamlist, because of known spam from any of their servers (happens often)

  3. Many other reasons...

    • wrong new lines
    • wrong date / time format
    • E-Mail Client can't handle your mail (wrong format)
  4. Try to use another SMTP server, to see if it is the signature or the server and not your script!

  5. Also try to send Mails with less images / links and even a lot more text!

If it is spam, could you please provide some information about X-Spam-Status, X-Spam-Level, X-Spam-DCC (Header elements). They give the best overview about what's going wrong!

-- Some additional Information about Spam: http://emailium.com/blog/wp-content/uploads/2011/02/Exact-Target-Infographic-Spam_vs_Whitelist-v2.jpg

Also try this help document by Google. If you did everything accordingly, you can contact the Google support.

https://support.google.com/mail/bin/answer.py?hl=en&answer=81126

If you're using google smtp to send emails, make sure to use your Sender's Name matches with your FirstName and Lastname matches with your google account, for example:

First Name: John Last Name: Doe

in python:

sender_address = john.doe@gmail.com

message["From"] = f"John Doe{sender_address}"

This took me a lot of error and trial.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM