我试图从Google发送使用SMTP的电子邮件。我已经发送了一封电子邮件,将设置变量放在文件“settings.py”中,但我需要在视图中配置这些变量并使用我的“配置”模型进行设置。Django:在视图中设置电子邮件设置
这是我的模型代码:
class Config(models.Model):
email_sender = models.CharField(max_length = 100, default = '', blank = True)
email_password = models.CharField(max_length = 30, default = '', blank = True)
smtp_server = models.CharField(max_length = 100, default = '', blank = True)
smtp_port = models.PositiveIntegerField(default = 587, blank = True)
这是我的看法代码:
def send_custom_mail(request):
config = Config.objects.get(pk = 1)
EMAIL_HOST = config.smtp_server
EMAIL_PORT = config.smtp_port
EMAIL_HOST_USER = config.email_sender
EMAIL_HOST_PASSWORD = config.email_password
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
subject = 'test'
msg = '<p>Test: <strong>Mensaje</strong>></p>'
mail_from = config.email_sender
mail_to = ['{}'.format(email)]
from django.core.mail import EmailMessage
email2send = EmailMessage(subject, msg, mail_from, to=mail_to)
email2send.content_subtype = "html" # Main content is now text/html
email2send.send()
我的问题:当我设置视图中的变量电子邮件不会被发送。
我需要配置这些变量dinamically所以我不能写在setting.py文件中。
嗯,不知道我明白你是如何在那里代码的设置。您是否试图在视图中设置Django配置变量(例如''EMAIL_HOST'')?如果是这样,你得到的将不会工作,因为你只是在本地范围内设置变量,而不是修改Django设置。您的问题是关于如何修改视图中的设置值? –
@RodManning是的,这就是我想要做的。我想从视图中设置这些变量以使其变为动态。 – Nazkter