通过SMTP向非本地地址发送邮件时拒绝中继访问

时间:2011-10-25 20:37:24

标签: django smtplib

以下代码段用于在用户注册

时发送邮件
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()

如果我发送到本地地址但是当收件人是外部邮件地址(即使用GMail或Yahoo帐户的用户)时抛出Relay access denied,这种情况很有效。

我需要在用户注册时发送基于HTML的电子邮件。这些邮件的内容存储在数据库中。如果上面的代码中有任何错误,请建议

1 个答案:

答案 0 :(得分:2)

错误消息来自要求发送邮件的邮件服务器 - 它只接受自己收件人的邮件(通常除非发件人以某种方式验证自己)。

您可能需要验证或使用其他邮件服务器。这取决于您使用的邮件服务器的配置。

请参阅有关SMTP后端配置的文档:https://docs.djangoproject.com/en/dev/topics/email/#smtp-backend

总体而言,维基百科非常详细地讨论了外发邮件服务器: http://en.wikipedia.org/wiki/SMTP#Outgoing_mail_SMTP_server