Есть ли способ использовать django send_mail, но отправитель основан на определенном поле в модели django? - PullRequest
1 голос
/ 09 декабря 2011

В настоящее время я использую SMTP для Gmail и Django send_mail.

EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'sample@gmail.com'
EMAIL_HOST_PASSWORD = 'samplepass'
EMAIL_USE_TLS = True

Всякий раз, когда я использую отправленную почту django, отправитель всегда основан на EMAIL_HOST_USER (в данном случае sample@gmail.com).

Я хочу изменить отправителя так, чтобы он не использовал sample@gmail.com, вместо этого он будет использовать электронное письмо из поля contact_email_address в моей модели Business_Profile.

#models.py
class Business_Profile(models.Model):   
    ...
    contact_email_address = models.EmailField()
    ...

Есть ли способ для этого?Я не хочу добавлять поле email_address_password в мой класс Business_Profile.

Если это невозможно, я открыт для предложений, таких как использование сервера электронной почты.У меня есть рабочий сервер, работающий на nginx, и я слышал о postfix.Могу ли я достичь того, чего хочу, используя postfix?Или есть более удобные и удобные почтовые серверы вместо postfix?

Спасибо за чтение.Я впервые задаю вопрос.

1 Ответ

0 голосов
/ 09 декабря 2011

Вы можете указать адрес отправителя в качестве параметра для send_mail():

from django.core.mail import send_mail

profile = BusinessProfile.objects.get(pk=1)

send_mail('Subject here', 'Here is the message.', profile.contact_email_address,
    ['to@example.com'], fail_silently=False)

Подробнее на https://docs.djangoproject.com/en/dev/topics/email/.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...