【问题标题】:'from_email' not showing with 'send_mail' smtp'from_email' 未与 'send_mail' smtp 一起显示
【发布时间】:2016-09-15 15:35:46
【问题描述】:

我已经用 gmail 设置了 smtp。当我使用 send_mail 时,发件人电子邮件未显示在接收电子邮件的帐户中。

Django 设置.py

# DEFAULT_FROM_EMAIL = 'sendTo@gmail.com'
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'sendTo@gmail.com'
EMAIL_HOST_PASSWORD = '**********'
EMAIL_USE_TLS = True

使用

$ python manage.py shell

我发送邮件如下,

>>> from django.core.mail import send_mail
>>> send_mail('subject is', 'message is and is not 12342', 'fromEmail@gmail.com', ['sendTo@gmail.com'])
1
>>>

我在我的 gmail 帐户(与 smtp 使用的同一 gmail 帐户)中收到这封电子邮件,但发件人电子邮件显示为 sendTo@gmail.com 并且应该是 fromEmail@gmail.com

【问题讨论】:

    标签: django email sendmail


    【解决方案1】:

    当您通过 google 的 SMTP 服务器发送电子邮件时,您无法更改“发件人”字段。它使用您为身份验证提供的相同地址。

    如果您想更改它,您必须使用您自己的邮件服务器或可用的众多邮件 API/服务器之一。我想到了 Sendgrid、MailGun 等。

    【讨论】:

    • 所以这个设置对于网站上的联系表格没有用处,因为我永远不会知道电子邮件来自谁。对吗?
    • 是的,因为这不是 gmail smtp 服务器的预期用途之一。它仅供人们从第三方电子邮件客户端(如雷鸟和非安卓手机)发送电子邮件。不打算用于网站。为此,您需要获取 Google Apps 服务。
    • 显示发件人电子邮件的解决方案是添加。 headers = {'Reply-To': contact_email } 在 sendmail 选项中。
    • 我不好,它使用的是 EmailMessage 类:headers = {'Reply-To': contact_email }。请参阅电子邮件中的文档:link
    【解决方案2】:

    我用这个视图解决了这个问题:

    def contact(request):
        form = ContactForm(data=request.POST or None)
    
        if form.is_valid(): 
            subject = form.cleaned_data['sujet']
            message = form.cleaned_data['message']
            sender = form.cleaned_data['envoyeur']
    
            msg_mail = str(message) + " " + str(sender)
    
            send_mail(sujet, msg_mail, sender, ['corbin.julien@gmail.com'], fail_silently=False)
    
        return render(request, 'blog/contact.html', locals())
    

    我实际上将发件人的电子邮件附加到邮件中。您甚至可以从 send_mail 中删除 sender 参数。您只需将 EmailField 设为必填项,以确保您将获得发件人的电子邮件地址。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-17
      • 1970-01-01
      • 2020-08-17
      • 2014-12-21
      • 1970-01-01
      • 1970-01-01
      • 2021-03-19
      相关资源
      最近更新 更多