Django发送电子邮件

邮箱配置

发送邮件需要依赖邮件服务商提供的邮件服务器。所以需要打开邮箱的smtp服务后才可发送邮件

  1. 打开邮箱的SMTP服务,在要用来发送邮件的邮箱配置中可以打开或关闭此服务。必须打开此服务。才可通过编写代码使用此邮箱发送邮件。
  2. 在django项目的settings.py中配置邮件发送参数
    qq邮箱需要设置 EMAIL_USE_SSL = True
# 邮件配置
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = "smtp.qq.com"
EMAIL_PORT = 465
EMAIL_HOST_USER = '*********@qq.com'
EMAIL_FROM = EMAIL_HOST_USER
EMAIL_HOST_PASSWORD = "**********"
# 邮箱连接设置为使用ssl时。需要设置此选项为True,例如qq邮箱默认设置即为此
EMAIL_USE_SSL = True

163邮箱配置

# 邮件配置
 EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
 EMAIL_HOST = "smtp.163.com"
 EMAIL_PORT = 25
 EMAIL_HOST_USER = '*********@163.com'
 EMAIL_FROM = EMAIL_HOST_USER
 EMAIL_HOST_PASSWORD = "*********"

发送邮件

In [1]: from django.core.mail import send_mail

In [2]: send_mail('这是个邮件的标题', '邮件的内容就在这里', '********@qq.com'
   ...: , ['*******@qq.com', '********@vip.qq.com'])
Out[2]: 1

In [3]: from django.conf import settings

In [4]: send_mail('这是个邮件的标题', '邮件的内容就在这里', settings.EMAIL_HOST
   ...: _USER, ['*********@vip.qq.com'])
Out[4]: 1
  • 第一个参数:邮件标题
  • 第二个参数:邮件内容
  • 第三个参数:发送邮件的邮箱,一般与setting中的配置相同
  • 第四个参数:字符串列表,接收邮件的邮箱地址
    群发命令send_mass_email
In [5]: from django.core.mail import send_mass_mail

In [6]: msg1 = ('大家好大家辛苦啦', '首长好为人民服务!', settings.EMAIL_HOST_U
   ...: SER, ['**********@vip.qq.com'])

In [7]: msg2 = ('话九辰,挥袖风云尽。江山何沉', '随三大发送到发斯蒂芬发发发第三
   ...: 方第三方', settings.EMAIL_HOST_USER, ['**********@vip.qq.com', '********@
   ...: qq.com'])

In [8]: send_mass_mail((msg1, msg2))
Out[8]: 2

接收的参数为一个元组。元祖中每个元素都为一个元组,其中的值的顺序与单发邮件的参数顺序一致,例如:

send_mass_email((('标题1', '内容1', '发送邮箱1', ['标题1接邮箱1', '标题1接收邮箱2']), ('标题2', '内容2', '发送邮箱2', ['标题2接收邮箱1', '标题2接收邮箱2'])))

你可能感兴趣的:(django,django,电子邮件)