Python 发送到错误帐户的电子邮件
我建立了一个发送电子邮件的联系方式。我只是有点麻烦,关于它被发送到的帐户。我希望电子邮件从“发送”servwishes@gmail.com发送至“联系电子邮件”。 现在,电子邮件正在从“联系人电子邮件”转到servwishes@gmail.com“ my views.py如下所示:Python 发送到错误帐户的电子邮件,python,django,Python,Django,我建立了一个发送电子邮件的联系方式。我只是有点麻烦,关于它被发送到的帐户。我希望电子邮件从“发送”servwishes@gmail.com发送至“联系电子邮件”。 现在,电子邮件正在从“联系人电子邮件”转到servwishes@gmail.com“ my views.py如下所示: def contact(request): Contact_Form = ContactForm if request.method == 'POST': form = Contact
def contact(request):
Contact_Form = ContactForm
if request.method == 'POST':
form = Contact_Form(data=request.POST)
if form.is_valid():
contact_name = request.POST.get('contact_name')
contact_email = request.POST.get('contact_email')
contact_content = request.POST.get('content')
template = get_template('users/contact_form.txt')
context = {
'contact_name' : contact_name,
'contact_email' : contact_email,
'contact_content' : contact_content,
}
content = template.render(context)
email = EmailMessage(
"New contact form email",
content,
"Creative web" + '',
['servwishes@gmail.com'],
headers = { 'Reply To': contact_email }
)
email.send()
return render(request, 'users/contact.html', {'form':Contact_Form })
我的setting.py看起来像:
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'servwishes@gmail.com'
EMAIL_HOST_PASSWORD = '*******'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
如果查看参数的顺序并将其从位置转换为关键字,则当前有:
email = EmailMessage(
subject="New contact form email",
body=content,
from_email="Creative web" + '',
to=['servwishes@gmail.com'],
headers = { 'Reply To': contact_email }
)
我认为这里有几个问题。我想你可能想做:
from_email='"Creative web" <servwishes@gmail.com>'
from_email=''Creative web''
但是因为你没有得到它,它把你的位置参数的顺序弄乱了
收件人应为To=联系\u电子邮件
另一个问题是,我认为您误解了“回复”标题。当收件人点击回复按钮时,电子邮件将被发送回收件人。这不是您要向谁发送电子邮件。Gmail将用经过身份验证的用户地址替换发件人地址。由于您可能在匹配位置参数时遇到问题,请尝试使用关键字参数进行所有操作。感谢您的反馈!我还是很难理解,你是在建议这样的事情吗?email=EmailMessage(“新联系人表单email”,内容,从“'Creative web””,到“=contact\u email,headers={'Reply to':contact\u email}”)我非常感谢您的反馈!是的,请告诉我这是否对您有效,但我认为“回复”可能是
servwishes@gmail.com
所以您并不真正需要它。如果您从一个地址发送电子邮件,但希望将回复发送回另一个地址,则只需要“回复”。谢谢,如果这回答了您的问题,请将其标记为已接受的答案。祝你万事如意!