台式电脑

怎么样在电脑qq邮箱里发邮件(用Python还能发电子邮件?赶快学起来)

本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注!

作者|慕课网精英讲师朱广蔚

1.简介

SMTP(SimpleMailTransferProtocol)即简单邮件传输协议,它是一组用于传送邮件的规则,由它来控制信件的中转方式。

Python的smtplib模块对smtp协议进行了简单的封装,提供了一种方便的途径发送电子邮件。

2.配置发送服务器2.1简介

在本篇文章中,使用QQ邮箱的SMTP服务发送邮件,需要对QQ邮件发送进行配置。

假设用户的信息如下:

用户邮件地址,假设为zhangsan@qq.com使用SMTP服务的密码,需要对QQ邮件进行配置后获取,注意:不是登录QQ邮箱的密码2.2进入设置界面

需要在PC端通过浏览器登录QQ邮箱:

点击设置,进入邮箱设置在邮箱设置中,点击账户用Python还能发电子邮件?赶快学起来!

2.2设置POP3/SMTP发送服务器

在账户设置的TAB页面中,选择“开启服务:POP3/SMTP服务”。

用Python还能发电子邮件?赶快学起来!

2.3通过短信开启POP3/SMTP服务

选择"开启服务:POP3/SMTP服务"后,系统提示通过发送短信开启POP3/SMTP服务

用Python还能发电子邮件?赶快学起来!

2.4获取SMTP服务密码

按照系统提示操作后,系统会给出使用SMTP服务的密码,请记住该服务密码,在后续的小节中会使用该密码。

用Python还能发电子邮件?赶快学起来!

3.发送文本格式的邮件

importsmtplibfromemail.headerimportHeaderfromemail.mime.textimportMIMEText代码块123导入smtplib用于发送邮件导入类Header和MIMEText用于构造邮件

fromAddr='zhangsan@qq.com'password='passwordforsmtp'toAddr='zhangsan@qq.com'subject='helloworld'content='你好,世界'代码块12345fromAddr为发送邮件地址toAddr为目的邮件地址,设置成与发送邮件地址相同,表示向自己发送一封邮件password是使用SMTP服务的密码,不是QQ邮箱的登录密码,请查看第2小节subject是邮件标题content是邮件内容

defmakeMail():mail=MIMEText(content,'plain','utf-8')mail['From']=Header(fromAddr,'utf-8')mail['To']=Header(toAddr,'utf-8')mail['Subject']=Header(subject,'utf-8')returnmail代码块123456在第1行,函数makeMail()根据fromAddr、toAddr、subject、content构造一封邮件在第2行,使用MIMEText构造一个文本格式的邮件MIMEText的第二个参数plain,表示邮件的内容是文本格式在第3行,构造邮件头From在第4行,构造邮件头To在第5行,构造邮件头Subject

defsendMail(mail):server=smtplib.SMTP_SSL("smtp.qq.com")server.login(fromAddr,password)server.sendmail(fromAddr,toAddr,mail.as_string())server.quit()代码块12345在第1行,函数sendMail调用SMTP服务发送邮件mail在第2行,获取SMTP服务器,使用QQ发送服务在第3行,登录SMTP服务在第4行,通过SMTP服务器发送服务

mail=makeMail()sendMail(mail)print('发送邮件成功')代码块123

运行程序,在QQ邮箱中收到邮件:

用Python还能发电子邮件?赶快学起来!

4.发送html格式的邮件

importsmtplibfromemail.headerimportHeaderfromemail.mime.textimportMIMEText代码块123导入smtplib用于发送邮件导入类Header和MIMEText用于构造邮件

fromAddr='zhangsan@qq.com'password='passwordforsmtp'toAddr='zhangsan@qq.com'subject='hellowithhtmlcontent'content='Pleaseclickimooc'代码块12345fromAddr为发送邮件地址toAddr为目的邮件地址,设置成与发送邮件地址相同,表示向自己发送一封邮件password是使用SMTP服务的密码,不是QQ邮箱的登录密码,请查看第2小节subject是邮件标题content是邮件内容,例子中使用HTML格式的文本

defmakeMail():mail=MIMEText(content,'html','utf-8')mail['From']=Header(fromAddr,'utf-8')mail['To']=Header(toAddr,'utf-8')mail['Subject']=Header(subject,'utf-8')returnmail代码块123456在第1行,函数makeMail()根据fromAddr、toAddr、subject、content构造一封邮件在第2行,使用MIMEText构造一个文本格式的邮件MIMEText的第二个参数html,表示邮件的内容是HTML格式在第3行,构造邮件头From在第4行,构造邮件头To在第5行,构造邮件头Subject

defsendMail(mail):server=smtplib.SMTP_SSL("smtp.qq.com")server.login(fromAddr,password)server.sendmail(fromAddr,toAddr,mail.as_string())server.quit()代码块12345在第1行,函数sendMail调用SMTP服务发送邮件mail在第2行,获取SMTP服务器,使用QQ发送服务在第3行,登录SMTP服务在第4行,通过SMTP服务器发送服务

怎么样在电脑qq邮箱里发邮件(用Python还能发电子邮件?赶快学起来)

mail=makeMail()sendMail(mail)print('发送邮件成功')代码块123

运行程序,在QQ邮箱中收到邮件:

用Python还能发电子邮件?赶快学起来!

5.发送带有附件的邮件5.1附件hello.c

在当前目录下,创造文件hello.c,内容如下:

#includeintmain(){printf("hello\n");return0;}代码块12345675.2发送带有附件的邮件

importsmtplibfromemail.headerimportHeaderfromemail.mime.textimportMIMETextfromemail.mime.multipartimportMIMEMultipart代码块1234导入smtplib用于发送邮件导入类Header和MIMEText用于构造邮件导入类MIMEMultipart用于构造带有附件的邮件

fromAddr='zhangsan@qq.com'password='passwordforsmtp'toAddr='zhangsan@qq.com'subject='hellowithattachment'content='你好,请查收附件'代码块12345fromAddr为发送邮件地址toAddr为目的邮件地址,设置成与发送邮件地址相同,表示向自己发送一封邮件password是使用SMTP服务的密码,不是QQ邮箱的登录密码,请查看第2小节subject是邮件标题content是邮件内容

defmakeAttachment(filename):file=open(filename,'rb')blob=file.read()attachment=MIMEText(blob,'base64','utf-8')attachment["Content-Type"]='application/octet-stream'attachment["Content-Disposition"]='attachment;filename="%s"'%filenamereturnattachment代码块1234567在第1行,函数makeAttachment构造一个附件在第2行到第3行,读取当前目录下的文件filename的内容在第3行,构造附件对象attachment在第4行到第5行,设置附件属性

defmakeMail():mail=MIMEMultipart()mail['From']=Header(fromAddr,'utf-8')mail['To']=Header(toAddr,'utf-8')mail['Subject']=Header(subject,'utf-8')mail.attach(MIMEText(content,'plain','utf-8'))returnmail代码块1234567在第1行,函数makeMail()根据fromAddr、toAddr、subject、content构造一封邮件在第2行,使用MIMEMultipart构造一个带有附件的邮件在第3行,构造邮件头From在第4行,构造邮件头To在第5行,构造邮件头Subject在第6行,设置邮件的正文content

defsendMail(mail):server=smtplib.SMTP_SSL("smtp.qq.com")server.login(fromAddr,password)server.sendmail(fromAddr,toAddr,mail.as_string())server.quit()代码块12345在第1行,函数sendMail调用SMTP服务发送邮件mail在第2行,获取SMTP服务器,使用QQ发送服务在第3行,登录SMTP服务在第4行,通过SMTP服务器发送服务

mail=makeMail()attachment=makeAttachment('hello.c')mail.attach(attachment)sendMail(mail)print('发送邮件成功')代码块12345在第2行,构造一个附件hello.c在第3行,将附件加入到邮件中

运行程序,在QQ邮箱中收到邮件:

用Python还能发电子邮件?赶快学起来!

欢迎关注「慕课网」,发现更多IT圈优质内容,分享干货知识,帮助你成为更好的程序员!

相关新闻

返回顶部