利用python实现自动发送邮件
利用python实现发送邮件
今天跟着视频学了一个小的知识点,如何利用python写一个小程序实现自动发送邮件。
首先我们需要有一个163邮箱(什么邮箱都可以)然后我们登录自己的邮箱,点击设置->POP3/SMTP/IMAP出现下图:
默认画红框里的选项是没有勾选上的,这就要我们选择客户端授权密码–》开启如下图
我这边可以开启了,如果点击开启时,会跳出这个窗口
然后发送短信设置自己的授权密码(!注意:不能和自己的登录密码一致)
再回到我们的 POP3/SMTP/IMAP页面
我们等等会用到图中划线的部分
前期准备工作已经好了下面就让我们开始写代码吧
首先我们要
导入一个发邮件的库
import smtplib
邮箱文本库
from email.mime.text import MIMEText
然后配置自己的SMTP服务器,这里我们用的是163的SMIP服务,如果你们用其他的邮箱的SMTP服务器也是可以的
SMTPServer ="smtp.163.com"
接着写发送邮箱的地址,也就是我们自己的163邮箱账号
Sender = "[email protected]"
再写发送者邮箱的密码,也就是我们刚才配置好的授权邮箱密码
passwd = "123456a"
我们在设置自己要发送的邮件的内容,这里我就随便输入了一个了。
message = "hockel is a good men "
然后我们要把我们发送的邮件内容转成邮件文本,这里我们要用了开头导入的邮件文本库MIMEText
msg = MIMEText(message)
我们可以给我发送邮件设置一个标题,操作如下。
msg["Subject"] = "来自帅哥的问候"
创建SMTP服务器smtplib.SMTP(SMTP服务, 端口号)
mailServer = smtplib.SMTP(SMTPServer, 25)
写登录邮箱login(邮箱账户,授权密码)
mailServer.login(Sender, passwd)
发送邮件的代码sendmail(发送者,接受者(这里有列表,可以有多人接受者),msg:发送消息:邮件内容。一般是msg.as_string():as_string()是将msg(MIMEText对象或者MIMEMultipart对象)变为str。
)
mailServer.sendmail(Sender, ["[email protected]"],msg.as_string())
退出邮箱
mailServer.quit()
下面就是见证奇迹的时刻了,我们运行一下程序,然后打开接受者的邮箱如下如
发送邮箱的具体代码如下,欢迎讨论:
# 发邮件的库
import smtplib
#邮件文本
from email.mime.text import MIMEText
# smtp服务器
SMTPServer ="smtp.163.com"
# 发邮件的地址
Sender = "[email protected]"
#发送者邮箱的密码
passwd = "123456a"
# 设置发送的内容
message = "hockel is a good men "
# 转换成邮件文本
msg = MIMEText(message)
# 标题
msg["Subject"] = "来自帅哥的问候"
#发送者
msg["From"] = Sender
# 创建SMTP服务器 服务器 端口号
mailServer = smtplib.SMTP(SMTPServer, 25)
#登录邮箱
mailServer.login(Sender, passwd)
# 发送邮件
for x in range(1,10):
mailServer.sendmail(Sender, ["[email protected]"],msg.as_string())
x += 1
# 退出邮箱
mailServer.quit()