您的位置:

Python SMTP Client发送电子邮件的步骤

一、连接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服务器、设置邮件内容、发送电子邮件、断开连接等。