Доступ к ретрансляции запрещен при отправке почты на нелокальные адреса через SMTP - PullRequest
1 голос
/ 26 октября 2011

Следующий фрагмент используется для отправки почты, когда пользователь регистрируется

ht = str(emailcontent.replace( u'\ufeff',''))
html_content = ht.decode('utf-8-sig')
msg = EmailMultiAlternatives(subject, emailcontent.text, settings.DEFAULT_FROM_EMAIL, [self.user.email]) 
msg.attach_alternative(html_content, "text/html")                
msg.send()

Это хорошо работает, если я отправляю на локальный адрес, но выдает Relay access denied, когда получатель является внешним почтовым адресом (т.е. пользователи с учетными записями GMail или Yahoo).

Мне нужно отправить письмо на основе HTML, когда пользователь регистрируется. Содержание этого письма хранятся в базе данных. Пожалуйста, предложите, если есть ошибки в коде выше

1 Ответ

2 голосов
/ 26 октября 2011

Сообщение об ошибке поступает от почтового сервера, которому предлагается отправить почту - он принимает почту только для своих получателей (обычно, если отправитель каким-либо образом не аутентифицируется).

Возможно, вам придется аутентифицироваться или использовать другой почтовый сервер.Это зависит от конфигурации используемого вами почтового сервера.

См. Документацию по конфигурации бэкэнда SMTP: https://docs.djangoproject.com/en/dev/topics/email/#smtp-backend

В целом Википедия подробно рассматривает серверы исходящей почты:http://en.wikipedia.org/wiki/SMTP#Outgoing_mail_SMTP_server

...