繁体   English   中英

Django send_mail函数不断失败

[英]Django send_mail function keeps failing

我一直在尝试让django在用户输入电子邮件后向一个用户发送邮件,但是它一直失败。 例如,用户A注册了我的列表,django向他发送了一封邮件。 用户B注册到我的列表,然后django向用户A和B发送邮件。

我不需要这种过程,我想在每个用户填写电子邮件地址后向他们发送邮件。 这样,当另一个用户注册django时,就不会将当前用户和数据库中已有的用户发送给同一用户。

以下是我的代码:

发送邀请

Subject='Join Me'

message=loader.get_template('letter.txt') 

from_email='test@testing.com'


def invite_me(request):
    if request.method=="POST":
       form=InviteForm(request.POST)
       if form.is_valid():
          form.save()
          #get input data and send email to the user.
          send_mail(Subject,message.render(Context()),from_email,Invite.objects.values_list('email_address', flat=True))
          return HttpResponse('Thanks For Inputting Your Email, Go Check Your Inbox!')
        else:
            return HttpResponse('Invalid Email Address')
      else:
          form=InviteForm()
          return render_to_response('home.html',{'InviteForm':InviteForm},context_instance=RequestContext(request))

您正在使用: Invite.objects.values_list('email_address', flat=True) ,它返回数据库中所有Invite的所有email_address字段的列表。

这意味着all已注册的Invite都会收到一封电子邮件。 我假设InviteForm是您Invite对象的ModelForm ModelForm.save返回新创建的对象,因此您应该这样做:

invite = form.save()
send_mail(Subject,message.render(Context()),from_email,[invite.email_address])

请记住, send_mail期望是可迭代的,因此需要在此处使用列表, 这是通过使用[invite.email_address]而不是仅invite.email_address

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM