Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从登录到管理员的用户发送电子邮件?_Python_Html_Django_Email - Fatal编程技术网

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. 如果这是你正在做的,那么在这种情况下它应该是有效的。