欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java连载55-Mail编程

程序员文章站 2022-06-23 22:38:12
一、电子邮件的历史 1.起源: 1969 Lenoard K. 教授发给同事的“LO” 1971 美国国防部自主的阿帕网(Arpanet)的通讯机制 通讯地址里用@ 1987年中国的第一份电子邮件 “Across the Great Wall we can reach every corner in ......

一、电子邮件的历史

1.起源:

1969 lenoard k. 教授发给同事的“lo”

1971 美国国防部自主的阿帕网(arpanet)的通讯机制

通讯地址里用@

1987年中国的第一份电子邮件

“across the great wall we can reach every corner in the world"

2.管理程序

euroda使邮件普及,netscape,outlook,formail,后来居上;hotmail使用浏览器发送邮件

3.​参考资料:https://docs.python.org/3/library/email.mime.html

4.邮件工作流程

mua(mailuseragent)邮件用户代理

mta(mailtransferagent)邮件传输代理

mda(maildeliveryagent)邮件投递代理

laoshi@qq.com, 老师,北京海淀

xuesheng@sina.com, 学生,上海静安区

​流程:

(1)mua-mta ,邮件已经在服务器上了

(2)qq mta-.........-sina mta,邮件已经在新浪的服务器上

(3)sina mta-sina mda,此时邮件已经在你的邮箱上了

(4)sina mda - mua (foxmail/outlook),邮件下载到本地电脑

​编写程序的过程:

(1)​发送:mua-mta with smtp(simplemailtransferprotocal)包含mta-mta

(2)接受​:mda-mua with pop3 and imap:postofficeprotocal v3 and internetmessageacessprotocal v4

(3)准备工作:注册邮箱(以qq邮箱为例),第三方邮箱需要设置,以qq邮箱为例​:进入设置中心,取得授权码

Java连载55-Mail编程

二、敲代码

1.smtp协议负责发送邮件

(1)使用email模块构建邮件

(2)使用smtplib模块发送邮件

#导入相应的包import smtplibfrom email.mime.text import mimetext#mimetext三个主要参数:1.邮件内容;2.mime子类型,在此案例中我们用plain表示text类型;3.邮件编码格式msg = mimetext("hello ,i am ruigege","plain","utf-8")#发送email地址,此处地址直接使用我的qq邮箱,密码一般许哟啊临时输入,此处偷懒from_addr = "1215217867@qq.con"#此处密码是经过申请设置之后的授权码,不是自己的qq号码密码,相当于github中的privatetokenfrom_pwd = ""#收件人信息#此处使用qq邮箱,我给自己发送吧,就不打扰别人了to_addr = "1215217867@qq.com"#输入smtp服务器地址#此处根据不同的邮件服务商有不同的值#现在基本任何一家邮件服务商,如果采用第三方收发邮件,都需要开启授权选项#腾讯qq邮箱的smtp地址是smtp.qq.comsmtp_srv = "smtp.qq.com"try:    #两个参数:第一个是服务器地址,但一定是bytes格式,所以需要编码;第二个参数是服务器的接受访问端口    srv = smtplib.smtp_ssl(smtp_srv.encode(),465)#smtp协议默认端口25    #登录邮箱发送    srv.login(from_addr,from_pwd)    #发送邮件:三个参数1.发送地址;2.接受地址,必须是list形式;3.发送内容,作为字符串进行发送    srv.sendmail(from_addr,[to_addr],msg.as_string())    srv.quit()except exception as w:    print(w)

2.pop3协议用于接受邮件

五、源码

d55_1_mailprogramme.py

https://github.com/ruigege66/python_learning/blob/master/d55_1_mailprogramme.py

2.csdn:https://blog.csdn.net/weixin_44630050(心悦君兮君不知-睿)

3.博客园:https://www.cnblogs.com/ruigege0000/

4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

Java连载55-Mail编程