一、连接SMTP服务器
在开始发送电子邮件之前,需要连接SMTP(Simple Mail Transfer Protocol)服务器。SMTP服务器是处理邮件发送的服务器,通过SMTP服务器来发送电子邮件。
首先需要导入smtplib库,然后使用smtplib的SMTP()函数来连接SMTP服务器。
import smtplib # 连接SMTP服务器 smtpObj = smtplib.SMTP('smtp.example.com', 25)
其中,'smtp.example.com'需要替换成对应的SMTP服务器地址,25是SMTP服务器端口号。
二、登录SMTP服务器
连接SMTP服务器之后,需要使用登录信息登录SMTP服务器。
import smtplib # 连接SMTP服务器 smtpObj = smtplib.SMTP('smtp.example.com', 25) # 登录SMTP服务器 smtpObj.login('example@domain.com', 'password')
其中,'example@domain.com'需要替换成发件人的电子邮件地址,'password'替换成发件人的电子邮件密码。
三、设置邮件内容
登录SMTP服务器之后,需要设置电子邮件的内容,包括邮件主题、发件人、收件人、抄送、密送、纯文本内容、HTML内容等。
import smtplib from email.mime.text import MIMEText from email.header import Header # 连接SMTP服务器 smtpObj = smtplib.SMTP('smtp.example.com', 25) # 登录SMTP服务器 smtpObj.login('example@domain.com', 'password') # 邮件内容 message = MIMEText('邮件内容', 'plain', 'utf-8') message['Subject'] = Header('邮件主题', 'utf-8') message['From'] = Header('发件人', 'utf-8') message['To'] = Header('收件人', 'utf-8') message['Cc'] = Header('抄送', 'utf-8') message['Bcc'] = Header('密送', 'utf-8') # 发送邮件 smtpObj.sendmail('example@domain.com', ['recipient1@domain.com', 'recipient2@domain.com'])
其中,'邮件内容'需要替换成实际的邮件内容,Header()函数用于设置编码格式为utf-8,'发件人'、'收件人'、'抄送'、'密送'、'邮箱地址'需要替换成实际的信息。'recipient1@domain.com'、'recipient2@domain.com'需要替换成实际的收件人地址。如果需要抄送或密送,需要在发送邮件函数sendmail()中添加相应的参数。
四、发送电子邮件
设置好邮件内容后,调用sendmail()函数即可发送电子邮件。
import smtplib from email.mime.text import MIMEText from email.header import Header # 连接SMTP服务器 smtpObj = smtplib.SMTP('smtp.example.com', 25) # 登录SMTP服务器 smtpObj.login('example@domain.com', 'password') # 邮件内容 message = MIMEText('邮件内容', 'plain', 'utf-8') message['Subject'] = Header('邮件主题', 'utf-8') message['From'] = Header('发件人', 'utf-8') message['To'] = Header('收件人', 'utf-8') message['Cc'] = Header('抄送', 'utf-8') message['Bcc'] = Header('密送', 'utf-8') # 发送邮件 smtpObj.sendmail('example@domain.com', ['recipient1@domain.com', 'recipient2@domain.com'], message.as_string())
其中,message.as_string()用于将MIMEText类型的邮件内容转化为字符串类型,使其可以被SMTP服务器识别。
五、断开连接
发送电子邮件完成后,需要使用quit()函数断开SMTP服务器连接。
import smtplib from email.mime.text import MIMEText from email.header import Header # 连接SMTP服务器 smtpObj = smtplib.SMTP('smtp.example.com', 25) # 登录SMTP服务器 smtpObj.login('example@domain.com', 'password') # 邮件内容 message = MIMEText('邮件内容', 'plain', 'utf-8') message['Subject'] = Header('邮件主题', 'utf-8') message['From'] = Header('发件人', 'utf-8') message['To'] = Header('收件人', 'utf-8') message['Cc'] = Header('抄送', 'utf-8') message['Bcc'] = Header('密送', 'utf-8') # 发送邮件 smtpObj.sendmail('example@domain.com', ['recipient1@domain.com', 'recipient2@domain.com'], message.as_string()) # 断开连接 smtpObj.quit()
六、完整代码示例
import smtplib from email.mime.text import MIMEText from email.header import Header # 连接SMTP服务器 smtpObj = smtplib.SMTP('smtp.example.com', 25) # 登录SMTP服务器 smtpObj.login('example@domain.com', 'password') # 邮件内容 message = MIMEText('邮件内容', 'plain', 'utf-8') message['Subject'] = Header('邮件主题', 'utf-8') message['From'] = Header('发件人', 'utf-8') message['To'] = Header('收件人', 'utf-8') message['Cc'] = Header('抄送', 'utf-8') message['Bcc'] = Header('密送', 'utf-8') # 发送邮件 smtpObj.sendmail('example@domain.com', ['recipient1@domain.com', 'recipient2@domain.com'], message.as_string()) # 断开连接 smtpObj.quit()
以上就是Python SMTP Client发送电子邮件的步骤,包括连接SMTP服务器、登录SMTP服务器、设置邮件内容、发送电子邮件、断开连接等。