Python实现发送邮件:smtplib与MIMEText模块教程

需积分: 0 0 下载量 126 浏览量 更新于2024-08-31 收藏 187KB PDF 举报
"这篇文章主要介绍了如何使用Python编程语言来实现发送邮件的功能,主要涉及的Python模块是smtplib和MIMEText。通过这些模块,我们可以构建一个简单的邮件发送程序,适用于163邮箱。" 在Python中实现发送邮件功能,我们需要使用内置的`smtplib`模块来处理SMTP(Simple Mail Transfer Protocol)协议,以及`email.mime.text`模块来创建邮件内容。首先,确保已经导入了这两个必要的模块: ```python import smtplib from email.mime.text import MIMEText ``` 为了发送邮件,我们需要定义一个函数,该函数接收一些关键参数,如邮箱服务器、端口号、用户名、密码、收件人地址、邮件标题和邮件内容。这里是一个使用163邮箱作为示例的函数: ```python def send_mail(username, passwd, recv, title, content, mail_host='smtp.163.com', port=25): msg = MIMEText(content) # 创建邮件内容对象 msg['Subject'] = title # 设置邮件主题 msg['From'] = username # 设置发件人 msg['To'] = recv # 设置收件人 smtp = smtplib.SMTP(mail_host, port=port) # 连接SMTP服务器 smtp.login(username, passwd) # 登录邮箱,使用授权码而非普通密码 # 发送邮件 smtp.sendmail(username, recv, msg.as_string()) # 将邮件内容转换为字符串并发送 smtp.quit() # 发送完毕后关闭SMTP连接 print('邮件发送成功。') ``` 在实际应用中,`send_mail`函数的`recv`参数可以接受一个或多个收件人地址,如果需要发送给多个收件人,只需要用逗号分隔各个地址即可。 请注意,163邮箱的SMTP服务器地址通常是`smtp.163.com`,而端口通常是25。在使用时,需要获取邮箱的授权码,而不是常规的登录密码。授权码是专门用于程序自动化发送邮件的安全密码。 当运行这个程序时,调用`send_mail`函数并提供相应的参数,例如: ```python if __name__ == '__main__': username = 'your_email@163.com' passwd = 'your_authorization_code' recv = 'recipient@example.com' title = '邮件标题' content = '邮件内容' send_mail(username, passwd, recv, title, content) ``` 请确保替换`your_email@163.com`、`your_authorization_code`、`recipient@example.com`、`邮件标题`和`邮件内容`为实际的值。这样,你的Python程序就能成功发送邮件了。这个方法同样适用于其他支持SMTP的邮件服务提供商,只需要更换相应的服务器地址和端口号。