使用python自动发邮件(163、QQ、outlook邮箱)
import smtplibfrom email.mime.text import MIMEText
from email.utils import formataddr
from datetime import datetime
# 发件人邮箱账号
my_sender = "l1525943131@163.com"
# my_sender = "1525943131@qq.com"
# 收件人邮箱账号
my_user = ["1525943131@qq.com"]
# my_user = ["l1525943131@163.com"]
# 授权码,不是账号的密码
authorization_code = "********"
# authorization_code = "****************"
# 发送人姓名
sender_name = "After__today"
# 接收人姓名
user_name = ["天晴的时候会下雨"]
# 发件服务器
smtp = "smtp.163.com" #网易163
# smtp="smtp.qq.com" #qq邮箱
def mail(text):
now_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
ret = True
for i in range(len(my_user)):
text1 = "您好 "+user_name[i]+"
现在时间为"+str(now_time)+"
很抱歉打扰您!
"+text
try:
msg = MIMEText(text1,"plain","utf-8")
# 括号里的对应发件人邮箱昵称、发件人邮箱账号
msg["From"] = formataddr([sender_name,my_sender])
# 括号里的对应收件人邮箱昵称、收件人邮箱账号
msg["To"] = formataddr([user_name[i],my_user[i]])
# 邮件的主题,也可以说是标题
msg["Subject"] = "系统提示信息"
# 发件人邮箱中的SMTP服务器,端口是25
server = smtplib.SMTP(smtp,25)
# 发件人邮箱账号、邮箱密码
server.login(my_sender, authorization_code)
# 发件人邮箱账号、收件人邮箱账号、发送邮件
server.sendmail(my_sender, [my_user[i],], msg.as_string())
# 关闭连接
server.quit()
except Exception:
ret = False
finally:
next
return ret
text = "发送成功"
mail(text)
很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!??¤
QQ群:623406465
这里使用的是163邮箱,需要注意要在 “邮箱中心” 设置客户端授权密码,否则会报错(550, b"User has no permission"),authorization_code就是设置的授权码,如果使用邮箱密码,会报错(535, b"Error: authentication failed")。
如果是使用QQ邮箱发送邮件,同样需要设置授权码,QQ邮箱——>设置——>账户,然后找到如下:
按步骤开启POP3/SMTP服务,authorization_code改为生成的16位授权码即可。
使用outlook发送邮件使用的是POP3服务,代码稍有改动
import win32com.client as win32from datetime import datetime
now_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
sub = "statistic_result"
body = "现在时间为" + now_time
outlook = win32.Dispatch("outlook.application")
receivers = ["1525943131@qq.com"]
mail = outlook.CreateItem(0)
mail.To = receivers[0]
mail.Subject = sub
# mail.Attachimage.Add("C:/Users/Administrator/Desktop/work.jpg")
mail.Body = body
mail.Attachments.Add("C:/Users/Administrator/Desktop/work.jpg")
mail.Send()
添加账户信息的过程见https://jingyan.baidu.com/article/e3c78d6496f6d73c4c85f5a2.html。
(想往正文中添加图片信息我试了很久都不行,Attachimage方法用不了,希望会的同学能在评论区告知,谢谢(/鞠躬)。)
发送的时候可能会提示安全警告,关掉的方法为在outlook的选项中信任中心的设置中,把编程访问中的从不发送警告勾选上,如果和我截图一样是灰白色无法勾选,应该是电脑安全级别过高,在控制面板中可以更改。
以上是 使用python自动发邮件(163、QQ、outlook邮箱) 的全部内容, 来源链接: utcz.com/z/530201.html