【问题标题】:emails sent by django hitting SPAM filtersdjango 发送的电子邮件命中垃圾邮件过滤器
【发布时间】:2014-08-04 14:52:02
【问题描述】:

我有以下代码通过 django 发送电子邮件,但所有电子邮件都被接收者垃圾邮件过滤器过滤。据我了解,您可以将 django 配置为使用外部 SMTP 服务器,并且我在 Google Apps 上设置了一个帐户,希望用于此目的。

有没有人可以帮助解决这个问题?

# conding=utf8

from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email.Utils import COMMASPACE, formatdate
from email import Encoders

from subprocess import Popen, PIPE
import os

from pictures.models import S5Picture
from django.core.management.base import NoArgsCommand

class Command(NoArgsCommand):

    def send_mail(self, send_from, send_to, subject, text, files=[]):
        msg = MIMEMultipart()
        msg['From'] = send_from
        msg['To'] = send_to
        msg['Date'] = formatdate(localtime=True)
        msg['Subject'] = subject

        msg.attach( MIMEText(text) )
        for f in files:
            part = MIMEBase('image', "jpeg")
            part.set_payload( open(f,"rb").read() )
            Encoders.encode_base64(part)
            part.add_header('Content-Disposition', 'attachment; filename="samsung_gs5_photo.jpg"')
            msg.attach(part)

        part = MIMEBase('application', 'pdf')
        part.set_payload(open('/usr/share/nginx/www/upload/static/BELL_OFFER_WITH_GS5_V3.pdf', 'rb').read())
        Encoders.encode_base64(part)
        part.add_header('Content-Disposition', 'attachment; filename="MMVA_Bell_Offer.pdf"')
        msg.attach(part)

        p = Popen(['/usr/sbin/sendmail', '-t'], stdin=PIPE)
        p.communicate(msg.as_string())
        p.stdin.close()

    def handle(self, *args, **kwargs):
        for photo in S5Picture.objects.filter(sent=False):
            try:
                print(photo.email, photo.picture)
                self.send_mail('photo@vps73224.ovh.net', photo.email, 'Your Samsung GS5 Photo!', '', ['/usr/share/nginx/www/upload/static/' + photo.picture])
                photo.sent = True
                photo.save()
            except Exception as e:
                print(e)
                pass

【问题讨论】:

  • 使用 GMail 帐户发送邮件不一定能解决垃圾邮件问题。您应该首先设置正确的 SPF 和 DKIM 记录,然后查看问题是否仍然存在。在这里配置 SPF 和 DKIM 是题外话。

标签: django email spam


【解决方案1】:

这在很大程度上取决于您尝试通过邮件发送的内容类型。它还高度依赖于您的服务器 IP、ISP 和 URL。它与 Django 无关。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-17
    • 1970-01-01
    • 2012-05-27
    • 2020-01-31
    • 1970-01-01
    • 1970-01-01
    • 2017-03-29
    相关资源
    最近更新 更多