提问人:Patrick 提问时间:10/22/2023 更新时间:10/22/2023 访问量:40
{'[email protected]': (553, b'5.7.1 <[email protected]>: 发件人地址被拒绝:不归用户所有 [email protected]')}
{'[email protected]': (553, b'5.7.1 <[email protected]>: Sender address rejected: not owned by user [email protected]')}
问:
我在我的网站上有一个联系表格,用户在其中填写他们的姓名、电子邮件和消息以联系支持人员,在这种情况下是并说发件人的电子邮件是 .当用户提交表单时,表单将产生错误[email protected]
[email protected]
{'[email protected]': (553, b'5.7.1 <[email protected]>: Sender address rejected: not owned by user [email protected]')}
如果发件人的电子邮件属于组织,则表单有效。用户是否可以通过在线表单发送电子邮件(使用不同的组织电子邮件,例如 Gmail)?[email protected]
这是我 forms.py
class ContactForm(forms.Form):
name = forms.CharField(label='Your name', max_length=100)
email = forms.EmailField(label='Your email', max_length=100)
message = forms.CharField(max_length=600, widget=forms.Textarea)
def send_mail(self):
logger.info("Sending email to customer service")
subject = "Site message"
message = f"From: {self.cleaned_data['name']} <{self.cleaned_data['email']}>\n{self.cleaned_data['message']}"
sender_email = self.cleaned_data['email'] # Use the user's email as the sender
recipient_list = ['[email protected]'] # My domain email address
send_mail(
subject,
message,
sender_email,
recipient_list,
fail_silently=False,
)
答:
0赞
willeM_ Van Onsem
10/22/2023
#1
正如错误所示,您不能使用gmail电子邮件后端代表其他人发送电子邮件。事实上,有关从不同地址或别名发送电子邮件的文档说:
如果您拥有其他电子邮件地址,则可以使用该地址发送邮件。
但是,即使某些电子邮件服务允许这样做,如果域不同,也很容易看出这是电子邮件的欺骗:发件人地址不属于发起通信的服务器。
您通常会添加对地址的回复,以便于回复填写表单的人,并附上:
from django.core.mail import EmailMessage
subject = 'Site message'
message = f"From: {self.cleaned_data['name']} <{self.cleaned_data['email']}>\n{self.cleaned_data['message']}"
sender_email = self.cleaned_data['email']
recipient_list = ['[email protected]']
email = EmailMessage(subject, message, to=recipient_list, reply_to=[sender_email])
email.send()
您也可以在 CC/BCC 中添加。sender_email
评论
sender_email
reply-to