Django的msg.send()不工作,因为它应该

问题描述:

当我通过Django的视图(下面的代码)发送邮件:Django的msg.send()不工作,因为它应该

subject = "Audit report for all staff "  
email_msg = "Hello Everyone," + '\n \n' + subject + '\n \n' + 'Thanks \n-Admin' 
report_name = response['Content-Disposition'].split('=')[1] 

msg = EmailMessage(
      subject = subject, 
      body = email_msg, 
      attachments=(('%s' % report_name,f.read(), 'text/csv'),), 
      to = ['[email protected]','[email protected]' ], 
     ) 
    msg.send() 

我的邮件只被发送到本地主机电子邮件ID,而不是Gmail的ID 。如何纠正这一点?

Django不会自动发送到远程服务器。它通过SMTP后端完成。你需要配置它。

http://docs.djangoproject.com/en/1.3/topics/email/#e-mail-backends

+0

如何配置呢? – prateek 2011-04-12 11:09:39

为了配置SMTP服务器,我只好给这样的事情在你的settings.py [SMTP提供安装]

EMAIL_HOST = "smtp.gmail.com" 
EMAIL_PORT = '587' 
EMAIL_HOST_USER = "[email protected]" #create a gmail id 
EMAIL_HOST_PASSWORD = "xxxx"#pwd for that id 
EMAIL_USE_TLS = True 
+0

可以使用这些设置我可以邮寄到不同的邮件标识符,如雅虎,rediff,gmail e.t.c – prateek 2011-04-12 13:04:06

+0

是的,你可以发送邮件到这些设置的任何域。 – 2011-04-14 04:40:03