使用python自动发邮件(163、QQ、outlook邮箱)

python

import smtplib

from 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 win32

from 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

回到顶部