Python3可以使用SMTP库进行邮件的发送,SMTP库支持普通文本邮件和HTML邮件发送,其中文本邮件发送较为简单,下面将讲述如何使用SMTP库发送简单文本邮件的完整攻略。
1. 导入SMTP库
Python3自带了SMTP库,导入该库后即可进行邮件的发送操作。
import smtplib
2. 邮件服务器登录
在发送邮件前,需要使用登录邮箱的SMTP服务,完成邮件服务器的登录,以便后续进行邮件发送操作。登录SMTP服务器的方法如下:
smtpobj = smtplib.SMTP_SSL('smtp.163.com', 465)
smtpobj.login('your_email_address@163.com', 'your_email_password')
以上代码实现连接163邮箱服务器的SMTP服务,并完成邮箱的登录,其中帐号需替换成自己的帐号,密码当然也要替换成自己的密码。
由于是使用SMTP_SSL进行登录,故端口是465,如果需要使用SMTP,则需要改成25。
3. 创建邮件对象
登录成功后,需要创建一个MIMEText对象,该对象可以用于描述邮件的主体内容,具体代码如下:
from email.mime.text import MIMEText
msg = MIMEText('邮件正文内容', 'plain', 'utf-8')
msg['From'] = 'sender_email_address'
msg['To'] = 'receiver_email_address'
msg['Subject'] = '邮件标题'
4. 发送邮件
创建好邮件对象后,使用SMTP服务进行邮件发送,具体实现方法如下:
smtpobj.sendmail('sender_email_address', 'receiver_email_address', msg.as_string())
其中,sender_email_address为发件人邮箱地址,receiver_email_address为收件人邮箱地址,msg.as_string()是将msg转换成str类型。
完整代码示例一:
import smtplib
from email.mime.text import MIMEText
msg = MIMEText('Python3发送邮件测试', 'plain', 'utf-8')
msg['From'] = '你的邮箱地址'
msg['To'] = '接收者的邮箱地址'
msg['Subject'] = '测试邮件标题'
smtp_obj = smtplib.SMTP_SSL('smtp.163.com', 465)
smtp_obj.login('你的邮箱地址', '你的邮箱密码')
smtp_obj.sendmail('你的邮箱地址', ['接收者的邮箱地址'], msg.as_string())
smtp_obj.quit()
完整代码示例二:
import smtplib
from email.mime.text import MIMEText
from email.header import Header
msg = MIMEText('Python3发送邮件测试', 'plain', 'utf-8')
msg['From'] = Header('发送者名称', 'utf-8').encode()
msg['To'] = Header('接收者名称', 'utf-8').encode()
msg['Subject'] = Header('测试邮件标题', 'utf-8').encode()
smtp_obj = smtplib.SMTP_SSL('smtp.163.com', 465)
smtp_obj.login('你的邮箱地址', '你的邮箱密码')
smtp_obj.sendmail('你的邮箱地址', ['接收者的邮箱地址'], msg.as_bytes())
smtp_obj.quit()
以上代码实现了使用SMTP发送邮件的过程,不同之处在MIMEText对象的编码方式和Header的使用方式以及对于发送者和接收者进行编码操作。
记得在实际使用时,将上述代码中的对应信息替换成自己的邮箱帐号和密码,以及实际的邮件内容。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python3使用SMTP发送简单文本邮件 - Python技术站