Python作为一种高效且易于学习的编程语言,常被用于各种领域的开发和应用。其中,邮件通信是我们日常中不可或缺的一项。本文就给大家介绍一下如何使用Python发送邮件和接收邮件。

Python发送邮件
Python自带的smtplib和email模块提供了方便的邮件发送功能。使用smtplib和email模块发送邮件的基本流程如下:
1.创建邮件对象message,使用email模块构造邮件内容(主题、发件人、收件人、内容等)。
2.连接SMTP服务器,使用smtplib模块登录认证,验证账户密码。
3.发送邮件,使用smtplib的send_message()方法发送邮件。
下面是一个使用Python发送邮件的示例代码:
import smtplib
from email.mime.text import MIMEText
mail_host = 'smtp.xxx.com' #邮箱smtp服务器
mail_user = 'xxxxx' #邮箱账户名
mail_pass = 'xxxxx' #邮箱密码
def send_mail(to_list,
subject,
contents):
me = 'Python爱好者' + '<' + mail_user + '>'
content = contents
msg = MIMEText(content)
msg['Subject'] = subject
msg['From'] = me
msg['To'] = ';'.join(to_list)
try:
s = smtplib.SMTP()
s.connect(mail_host)
s.login(mail_user, mail_pass)
s.sendmail(me, to_list, msg.as_string())
s.close()
return True
except Exception as e:
print('邮件发送失败', e)
return False
如果要发送附件或者html格式的邮件,可以使用email模块提供的MIMEMultipart和MIMEText类。
Python接收邮件
和发送邮件类似,Python也自带了poplib和imaplib模块用于接收邮件。POP3和IMAP是两种流行的邮件接收协议,有不同的使用场景。POP3一般用来从服务器中“取回”邮件并把邮件保存到本地电脑或移动设备中,而IMAP则常用于在多个设备之间同步邮件。下面是一个使用Python接收POP3邮件的示例代码:
import poplib
from email.parser import Parser
from email.header import decode_header
from email.utils import parseaddr
mail_host = 'pop.xxx.com'
mail_user = 'xxxxx'
mail_pass = 'xxxxx'
server = poplib.POP3_SSL(mail_host,995)
server.user(mail_user)
server.pass_(mail_pass)
resp, mails, octets = server.list()
mail_content = []
for index, item in enumerate(mails[::-1]):
resp, lines, octets = server.retr(len(mails) - index)
msg_content = b'\r\n'.join(lines).decode('utf-8')
msg = Parser().parsestr(msg_content)
msg_dict = {}
msg_dict['From'] = parseaddr(msg['From'])[1]
msg_dict['To'] = parseaddr(msg['To'])[1]
msg_dict['Subject'] = decode_header(msg['Subject'])[0][0]
mail_content.append(msg_dict)
server.dele(len(mails) - index)
server.quit()
print(mail_content)
在使用IMAP接收邮件时,可以使用imaplib模块。IMAP相比POP3,功能更强大,支持高级搜索、多文件夹管理等功能。
综上,Python作为一种强大而易用的编程语言,非常适合用于邮件相关的操作。无论是发送还是接收,Python都提供了简便的API,让我们可以用更方便的方式进行邮件操作。