当我们需要自动化地发送邮件时,Python 是一个很好的选择。在 Python 中,我们可以使用 smtplib 模块来创建一个简单的邮件发送系统。
以下是利用 Python 发送邮件的完整攻略:
1. 连接到邮箱服务器
首先,需要导入所需的库,并用你的邮箱的服务器和端口来初始化一个 SMTP 对象。常见的邮件提供商如下:
邮件提供商 | SMTP 服务器 | SMTP 端口 |
---|---|---|
Gmail | smtp.gmail.com | 587 |
阿里云邮箱 | smtp.mxhichina.com | 25 |
腾讯企业邮箱 | smtp.exmail.qq.com | 465 |
import smtplib
# 连接到服务器
smtp_obj = smtplib.SMTP('smtp.gmail.com', 587)
2. 登录你的邮箱
接下来,需要出入你的邮箱地址和密码来登录你的邮箱。
# 登录邮箱
smtp_obj.login('youremail@example.com', 'password')
3. 创建邮件主体
接下来,需要构造邮件主体。需要包括收件人地址、发件人地址、邮件主题和邮件内容。
# 创建邮件
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage
html = "<h1>这是一封测试邮件</h1>"
msg = MIMEMultipart()
msg['From'] = 'youremail@example.com'
msg['To'] = 'recipient@example.com'
msg['Subject'] = '测试邮件'
msg.attach(MIMEText(html, 'html'))
4. 发送邮件
最后,将邮件发送出去。可以使用 sendmail 方法来发送邮件。
# 发送邮件
smtp_obj.sendmail('youremail@example.com', 'recipient@example.com', msg.as_string())
# 关闭连接
smtp_obj.quit()
以上就是Python发送邮件的完整攻略。以下是两个示例说明:
示例一:发送带附件的邮件
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
import smtplib
msg = MIMEMultipart()
msg['From'] = 'youremail@example.com'
msg['To'] = 'recipient@example.com'
msg['Subject'] = '邮件主题'
# 添加纯文本内容和图片附件
text = MIMEText('这是一封测试邮件,带图片附件')
msg.attach(text)
with open('helloworld.png', 'rb') as f:
img = MIMEImage(f.read())
img.add_header('Content-Disposition', 'attachment', filename='helloworld.png')
msg.attach(img)
# 连接到服务器并登录
s = smtplib.SMTP('smtp.gmail.com', 587)
s.starttls()
s.login('youremail@example.com', 'password')
# 发送邮件
s.sendmail('youremail@example.com', 'recipient@example.com', msg.as_string())
# 关闭连接
s.quit()
示例二:发送HTML邮件
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import smtplib
html = """
<html>
<body>
<h1>Hello World!</h1>
<p>这是一封测试邮件</p>
</body>
</html>
"""
msg = MIMEMultipart()
msg['From'] = 'youremail@example.com'
msg['To'] = 'recipient@example.com'
msg['Subject'] = '邮件主题'
# 添加html内容
msg.attach(MIMEText(html, 'html'))
# 连接到服务器并登录
s = smtplib.SMTP('smtp.gmail.com', 587)
s.starttls()
s.login('youremail@example.com', 'password')
# 发送邮件
s.sendmail('youremail@example.com', 'recipient@example.com', msg.as_string())
# 关闭连接
s.quit()
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何利用python发送邮件 - Python技术站