我試圖從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