【Python脚本】使用Python发送邮件的简单实现
哈喽大家好,我是Xwaiy。
发邮件我们都会,那有没有一种方法只操作一次发送就可以给对方发多封邮件呢,然后我就想到可以用python实现批量发送邮件呀
一想到这里,我就立马啪啪啪的去研究怎么写,最后还是把脚本给写出来并成功运行了。不得不说,上班的时候除了工作,干啥都勤快。
创建 SMTP 对象
使用 smtplib.SMTP_SSL
方法创建一个安全的 SMTP 对象,该方法需要指定 SMTP 服务器的地址和端口号。要使用SMTP,邮箱必须要开启SMTP服务,具体怎么开启,可以看下一步。
def send_email():
smtp_obj = smtplib.SMTP_SSL('smtp.163.com',465)
登录邮箱
使用 smtp_obj
的 login
方法登录邮箱。登录所需的邮箱地址和授权码应妥善保管。
smtp_obj.login('个人邮箱@163.com','邮箱授权码')
授权码的获取非常简单,我用163邮箱做示范 先去登录网页版的邮箱,登录之后在首页找到设置,点击设置选择POP3/SMTP/IMAP
然后在设置页面中,先检查有没有开启SMTP服务,没有开启的要先开启,然后往下拉,找到授权密码管理
点击新增授权密码
然后就是按照提示继续后续步骤就行了
新增成功后会有个授权密码,记得复制保存 记得复制保存 记得复制保存
到这里,开启SMTP服务和获取授权密码就已经完成了
编辑邮件内容
准备邮件内容,包括文本内容、发送者地址和主题。
# 编辑内容
mail_text = '邮件内容写这里'
# plain 原生文本模式
msg_body = MIMEText(mail_text,'plain','utf-8')
# 设置从哪发送的
msg_body['From'] = Header('个人邮箱@163.com')
msg_body['Subject'] = Header('这是一个邮件!','utf-8')
发送邮件
使用 smtp_obj
的 sendmail
方法发送邮件。该方法需要提供发送者、接收者和邮件内容。
# 发送邮件
for i in range(3):
smtp_obj.sendmail('个人邮箱@163.com','目标邮箱@qq.com',msg_body.as_string())
#等待30秒
time.sleep(30)
注意事项
- 请确保保密和妥善管理邮箱地址、授权码和其他敏感信息。
- 使用延迟发送邮件时,确保遵循服务提供商的使用政策。
以下是全部代码示例:
import time
import smtplib
from email.mime.text import MIMEText
from email.header import Header
from email.utils import formataddr
def send_email():
# 设置要登录的邮箱
smtp_obj = smtplib.SMTP_SSL('smtp.163.com',465)
# 登录邮箱
smtp_obj.login('个人邮箱@163.com','邮箱授权码')
# 编辑内容
mail_text = '邮件内容写这里'
# plain 原生文本模式
msg_body = MIMEText(mail_text,'plain','utf-8')
# 设置从哪发送的
msg_body['From'] = Header('个人邮箱@163.com')
msg_body['Subject'] = Header('这是一个邮件!','utf-8')
# 发送邮件
for i in range(3):
smtp_obj.sendmail('个人邮箱@163.com','目标邮箱@qq.com',msg_body.as_string())
#等待30秒
time.sleep(30)
if __name__ =='__main__':
send_email()
代码运行后,对方就会收到发送的邮件
好了,以上就是我上班时闲到屁股发麻搞的脚本,希望大家喜欢!!!
转载自:https://juejin.cn/post/7367252049559781416