gpt4 book ai didi

python - 如何使用两个不同的电子邮件地址发送电子邮件?

转载 作者:行者123 更新时间:2023-12-01 02:43:33 25 4
gpt4 key购买 nike

我有一个 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 中测试了这个地址和电子邮件作为全局连接,并且它有效。

最佳答案

您可以像这样使用 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

关于python - 如何使用两个不同的电子邮件地址发送电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45442581/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com