Python 如何从登录到管理员的用户发送电子邮件?
我正在处理一个项目,从登录到Python 如何从登录到管理员的用户发送电子邮件?,python,html,django,email,Python,Html,Django,Email,我正在处理一个项目,从登录到admin的用户发送撤回请求。在这种情况下,我不必向用户发送邮件,而是必须将邮件发送到管理员的官方电子邮件地址,以获得通知。我使用了reply\u to,但它告诉我这是意外的参数 视图.py @login_required def withdraw(request): form_class = WithdrawBalance if request.method == 'POST': form = form_class(request.P
admin
的用户发送撤回请求。在这种情况下,我不必向用户发送邮件,而是必须将邮件发送到管理员的官方电子邮件地址,以获得通知。我使用了reply\u to
,但它告诉我这是意外的参数
视图.py
@login_required
def withdraw(request):
form_class = WithdrawBalance
if request.method == 'POST':
form = form_class(request.POST)
obj = form.save(commit=False)
obj.owner = request.user
obj.save()
messages.success(request, f'Your request has been submitted.')
send_mail('New Withdrawal Request',
'Hello there, A new withdrawal request has been received.',
request.user.email, ['bilalkhangood4@gmail.com'], fail_silently=False)
return redirect('index')
else:
form = form_class()
context = {'form': form}
return render(request, 'nextone/withdraw.html', context)
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'bilalkhangood4@gmail.com'
EMAIL_HOST_PASSWORD = ''
EMAIL_PORT = 587
ACCOUNT_EMAIL_VERIFICATION = 'none'
EMAIL_USE_SSL = False
设置.py
@login_required
def withdraw(request):
form_class = WithdrawBalance
if request.method == 'POST':
form = form_class(request.POST)
obj = form.save(commit=False)
obj.owner = request.user
obj.save()
messages.success(request, f'Your request has been submitted.')
send_mail('New Withdrawal Request',
'Hello there, A new withdrawal request has been received.',
request.user.email, ['bilalkhangood4@gmail.com'], fail_silently=False)
return redirect('index')
else:
form = form_class()
context = {'form': form}
return render(request, 'nextone/withdraw.html', context)
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'bilalkhangood4@gmail.com'
EMAIL_HOST_PASSWORD = ''
EMAIL_PORT = 587
ACCOUNT_EMAIL_VERIFICATION = 'none'
EMAIL_USE_SSL = False
如果要为
参数提供reply\u,则需要使用
试试这个:
from django.core.mail import EmailMessage
email = EmailMessage(
subject='New Withdrawal Request',
body='Hello there, A new withdrawal request has been received.',
from_email='bilalkhangood4@example.com',
to=[request.user.email],
reply_to=['another@example.com'],
)
email.send()
gmail不需要指定密码吗?我没有在stackoverflow中指定密码。好的-看起来它完全丢失了,这可以解释任何问题:)如果你在端口465上使用SSL而不是TLS,它能工作吗?我在EMAIL\u port
中使用了465,但它给了我SMTPServerDisconnected at/draw/Connection意外关闭
你使用了465并设置了EMAIL\u use\u SSL=True
和EMAIL\u use\u TLS=False
,工作正常吗但有一个问题。当电子邮件收到管理员,它告诉我,这是从管理员电子邮件到用户电子邮件。我交换bilalkhangood4@gmail.com通过发送到
和请求.user.email
通过从电子邮件发送
。发送后,它告诉我它是从一个管理员到另一个管理员的。如果用户请求取款,我想通知管理员。我想这只是因为表单中的电子邮件
和到
需要交换…我交换了它,但它给我的消息是,它是从一个管理员到另一个管理员的。@Housi你在使用两个不同的帐户吗测试?因此,您希望将电子邮件从request.user.email发送到admin@mail.com,然后您需要放置from_email=request.user.email和to=admin@mail.com. 如果这是你正在做的,那么在这种情况下它应该是有效的。