Django 使用自带模块发送邮件

django mail  

简单配置 [settings.py]

#邮件配置
EMAIL_HOST = 'smtp.imdst.com'                   #SMTP地址  
EMAIL_PORT = 25                                 #SMTP端口  
EMAIL_HOST_USER = 'admin@imdst.com'             #我自己的邮箱  
EMAIL_HOST_PASSWORD = '******'                  #我的邮箱密码  
EMAIL_SUBJECT_PREFIX = u'[OPS平台]'             #为邮件Subject-line前缀,默认是'[django]'  
EMAIL_USE_TLS = True                             #与SMTP服务器通信时,是否启动TLS链接(安全链接)。默认是false  
SERVER_EMAIL = 'my@imdst.com'                  #管理员站点  

模块说明

  • django 对smtplib 进行了封装位于 django.core.mail,使发邮件接口更加简单
  • 样例
 from django.core.mail import send_mail  

send_mail('Subject here', 'Here is the message.', 'from@example.com',    ['to@example.com'], fail_silently=False)  
  • 发送一个邮件 send_mail
send_mail(subject, message, from_email, recipient_list, fail_silently=False, auth_user=None,auth_password=None)

subject             邮件的标题  
message             邮件的内容  
from_email          发送邮件者  
recipient_list      接受邮件者列表  
fail_silently       可选参数,默认是False,如果是False,则发送失败时候,会抛出 smtplib.SMTPException 异常  
auth_user           可选的参数,如果有,那么认证SMTP Server时,使用该用户,否则使用 EMAIL_HOST_USER 设置  
auth_password       可选参数,如果有,那么认证SMTP Server时,使用该密码,否则使用、EMAIL_HOST_PASSWORD 设置  
  • 发送一组邮件 sendmassmail
send_mass_mail(datatuple, fail_silently=False, auth_user=None, auth_password=None)

datatuple:是一个元组,其格式如下:  
(subject,message,from_email,recipient_list)
  • 区别
send_mail          每次发送邮件都打开一个新的连接来发送。  
send_mass_mail     每次发送邮件时仅仅打开一个连接,将这次元组中的所有邮件发送出去。