51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 1459|回复: 1

django中的电子邮件

[复制链接]

该用户从未签到

发表于 2019-4-1 15:07:41 | 显示全部楼层 |阅读模式
电子邮件在软件上写出来,叫做MUA:Mail User Agent——邮件用户代理

发送的时候,发送到MTA:Mail Transfer Agent——邮件传输代理

电子邮件的发送流程

发件人--MUA--MTA---MTA---许多MTA---MDA---MUA---收件人

发邮件时,MUA和MTA使用的协议就是SMTP:Simple Mail Transfer Protocol,后面的MTA到另一个MTA也是用SMTP协议。

收邮件时,MUA和MDA使用的协议有两种:POP:Post Office Protocol,目前版本是3,俗称POP3;IMAP:Internet Message Access Protocol,目前版本是4,优点是不但能取邮件,还可以直接操作MDA上存储的邮件,比如从收件箱移到垃圾箱



settings.py基本上这样设置就可以了
  1. EMAIL_BACKEND='django.core.mail.backends.smtp.EmailBackend'#这个可以不设置,是默认的
  2. EMAIL_HOST = "smtp.sina.com"#用来发送邮件的主机
  3. EMAIL_PORT = 25#主机端口
  4. EMAIL_HOST_USER = "****@sina.com" # 你的邮箱账号
  5. EMAIL_HOST_PASSWORD = "***" # 你的邮箱密码
  6. EMAIL_USE_TLS = False # 和SMTP对话是否使用TLS安全连接
  7. EMAIL_FROM = "***@sina.com"  # 你的邮箱账号
  8. EMAIL_TIMEOUT=10#指定堵塞超时时间
复制代码

我们来看一看django内置的各种模块

1.send_mail

  1. from django.core.mail import send_mail
复制代码

send_mail('subject','message','from mail',[to mail]',fail_silently=False)


2.send_mass_mail用于发送多人多个邮件

msg1=('subject’,'message','from',[to mail可以写多个])

msg1=('subject’,'message','from',[to mail可以写多个])

send_mass_mail((msg1,msg2这里可以写多个),fail_silently=False)


3.EmailMessage,但是经过测试这个传输比较慢,可能是附件的缘故

  1. from django.core.mail import EmailMessage

  2. email = EmailMessage(
  3.     'Hello',
  4.     'Body goes here',
  5.     'from@example.com',
  6.     ['to1@example.com', 'to2@example.com'],
  7.     ['bcc@example.com'],
  8.     reply_to=['another@example.com'],
  9.     headers={'Message-ID': 'foo'},
  10. )
复制代码

这个模块可以发送附件

email.attch_file('/image.jpg',mimetypr=None)

email.attch('附属主题','附属内容')

email.send()


回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-4-19 07:47 , Processed in 0.066231 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表