【问题标题】:How to use two different email addresses for emails sending?如何使用两个不同的电子邮件地址发送电子邮件?
【发布时间】:2018-01-08 14:26:11
【问题描述】:

我有一个 Django 项目,它有两个域。

domain1.com
domain2.com

我使用Sites 应用程序来区分这两个地址,例如:

<h1>Welcome to {% if site.id==1 %}Domain1{% else %}Domain2</h1>

我希望能够从两封电子邮件中发送消息:

    send_email(user, 'domain1@gmail.com' if site.id==1 else 'domain2@gmail.com', message...)

我尝试将from_email 添加到EmailMessage,但它不起作用。发件人是“domain1@gmail.com”。

mail = EmailMessage(subject, message, from_email='domain2@gmail.com', to=[user_email])
mail.send()

我只有一个settings.py,所以我可能只能设置一个 SMTP。

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'domain1@gmail.com'
EMAIL_HOST_PASSWORD = 'pswd'

你知道如何让它工作吗?

编辑:所以我尝试了这个:

with get_connection(
        host=settings.EMAIL_HOST,
        port=settings.EMAIL_PORT,
        username='myemail@gmail.com',
        password='mypasswd',
        use_tls=settings.EMAIL_USE_TLS) as connection:
    EmailMessage(subject, message, [user.email],
                 connection=connection).send()

我已经检查过了 - 正在调用此代码。它不返回任何异常,但不发送电子邮件。

可以肯定的是,我已经在settings.py 中测试了这个地址和电子邮件作为全球连接并且它有效。

【问题讨论】:

    标签: python django email django-email


    【解决方案1】:

    您可以像这样使用 get_connection 覆盖 settings.py 中的设置

    from django.core.mail import get_connection, send_mail
    from django.core.mail.message import EmailMessage
    
    with get_connection(
        host=<host>, 
        port=<port>, 
        username=<username>, 
        password=<password>, 
        use_tls=<True/False>
    ) as connection:
        EmailMessage(subject, body, from, [to],
                     connection=connection).send()
    

    使用 with 会自动关闭连接。如果不使用 with 则需要手动关闭连接 connection.close()

    文档在这里 -> https://docs.djangoproject.com/en/dev/topics/email/#email-backends

    【讨论】:

    • 谢谢。不幸的是,这不起作用。它不返回任何异常,但不发送任何电子邮件。我在问题的底部添加了我的代码。我确定它被调用了,并且我确定凭据没问题。
    • 奇怪,我最近在一个项目中使用过这个,它在那里工作。
    • 好的,现在可以了。我想我没有改变任何东西......这可能是导致问题的gmail。像往常一样...
    • 太棒了!很高兴我能帮忙。
    猜你喜欢
    • 1970-01-01
    • 2016-05-22
    • 2017-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-29
    • 2018-11-06
    • 1970-01-01
    相关资源
    最近更新 更多