网站建设需要什么人员,周口logo设计公司,汕头网站建设方案外包,深圳展厅公司在python中#xff0c;我们可以用程序来实现向别人的邮箱自动发送一封邮件#xff0c;甚至可以定时#xff0c;如每天8点钟准时给某人发送一封邮件。今天#xff0c;我们就来学习一下#xff0c;如何向qq邮箱#xff0c;网易邮箱等发送邮件。 一、获取邮箱的SMTP授权码。… 在python中我们可以用程序来实现向别人的邮箱自动发送一封邮件甚至可以定时如每天8点钟准时给某人发送一封邮件。今天我们就来学习一下如何向qq邮箱网易邮箱等发送邮件。 一、获取邮箱的SMTP授权码。 1、要发送邮件首先要获取对应邮箱的SMTP授权码有了这个SMTP授权码才能发送邮件。 以qq邮箱为例 1首先登录主页在主页上面点击设置点击账户。 2在账户页面一直往下拉找到如下图所示位置。 3 点击POP3/SMTP服务中的开启按钮。点击开启后会有一个手机验证把需要发送的内容发送到指定号码然后点击“我已发送”按钮。 4之后会自动跳出一个框里面就包含着SMTP授权码把它复制下来储存到一个地方方便以后调用 5同理你要给网易邮箱发送邮件的话你也要登录网易邮箱然后获取SMTP授权码。 二、编写发送代码 1、首先安装邮件发送的库smtplib 2、引入邮件发送的库
import smtplib#引入控制邮箱发送邮件的库
from email.mime.text import MIMEText 3、新建邮件对象填入邮件的正文内容和发件人、收件人等信息。
#1.邮件正文内容
msg MIMEText(测试邮件正文内容)user 你自己的qq号qq.com #发件人邮箱
pwd 你自己的SMTP授权码 #邮箱的SMTP授权码
to 你自己设置的收件人邮箱#收件人可以写多个收件人用英文逗号隔开#2.设置邮件主题、发件人、收件人
msg[ Subject ] 测试邮件主题!#邮件的标题
msg[ From ] user#设置发件人
msg[To] to#设置收件人其中要在pwd变量中输入你第一步得到的SMTP授权码。然后要设置发件人也就是你自己的邮箱还有就是收件人的邮箱收件人的邮箱可以是多个多个之间用英文的逗号隔开即可。 4、调用qq邮箱服务登录邮箱发送邮件
#3.发送邮件
s smtplib.SMTP_SSL (smtp.qq.com, 465)#选择qq邮箱服务默认端口为465
s.login(user, pwd)#登录qq邮箱
s.send_message(msg)#发送邮件
s.quit()#退出邮箱服务
print( Success! ) 其中smtp.qq.com为qq邮箱服务名465为邮箱端口号这对于qq邮箱是固定的不可修改。
如果是网易邮箱则使用smtp.163.com端口号还是465 5、测试发送文件。发送成功 三、发送HTML邮件 有的情况下我们需要发送html格式的邮件那么我们应该怎么做呢 关键点就是新建邮件对象时指定邮件的格式为html
mail_msg
p这个是一个常规段落/p
pa hrefhttps : / /www.baidu.com这是一个包含链接的段落/a/pmsg MIMEText(mail_msg, html , utf-8) 其中mail_msg就是我们的html格式的邮件内容然后把之前的msg MIMEText(测试邮件正文内容)增加两个参数一个参数指定格式为html另一个参数指定编码方式为utf-8 。 其它代码和普通邮件发送的代码一样。 四、发送邮件附件 有时我们需要在发送邮件正文内容的同时附上邮件附件而如果想实现自动发送邮件附件我们需要将之前的代码做些修改。
1、引入MIMEMultipart功能并且创建一个可以同时添加正文和附件的MIMEMultipart()对象并把它赋值给msg变量
from email.mime.multipart import MIMEMultipart
msg MIMEMultipart()2、将前面html格式的邮件正文mail_msg的内容添加到msg中
#先添加正文内容
msg.attach(MIMEText(mail_msg html , utf-8 ))3、然后在将附件添加到msg中
#再添加附件这里的文件名可以有中文但下面第三行的filename不可以为中文
attl MIMEText(open( E:\\test.docx, rb ) .read() base64 , utf-8)
attl[Content-Type] application/octet-stream
#下面的filename是在邮件中显示的名字及后缀名名字可以不同但不可以为中文!!
att1[Content-Disposition] attachment; filenametest.docx
msg.attach(att1)在写文件路径的时候最好还是用两个反斜杠来防止单个斜杠导致的特殊含义这里的文件路径可以写成中文内容因为这里设置了utf-8编码。 注意如果有的时候显示文件路径报错那么把里面大写的字母换成小写即可这个是个经验手段仅在这里适用。 filename里不可以写中文否则会报错 4、后面发送的代码都是和之前一样的。 五、定时发送邮件 可以用以下两种方式实现定时发送。
1、通过while True实现定时任务 把发送邮件的代码放到一个函数中然后在while中定时调用这个函数实现定时发送。
import timewhile True:send_email()time.sleep(86400) 一天是86400秒所以使用time每休息一天就调用一次发送邮件的代码需要定义一个叫send_email 的函数把之前发送邮件的代码放在该函数中。 2、通过schedule库实现定时任务。 1安装schedule库pip install schedule 2每天8:00定时调用发送邮件的函数
import schedule
schedule.every().day.at( 8:00 ).do(send_email)
while True:schedule.run_pending()time.sleep ( 10) schedule定义了每天8:00调用一次send_email函数at后的括号里是具体的时间do后的括号里是需要执行的函数。其作用是将该任务放入定时计划中如果要实现每天都执行还需要加一个while循环schedule.run_pending()的含义为运行所有可以运行的schedule任务time.sleep(10)是让schedule任务运行完休息10秒钟再检测是否有可以运行的任务。 六、自动回复邮件 在收到别人的邮件后我们可以设置一个自动回复功能通常用来通知对方邮件已经收到了作为一个友好的反馈。邮件自动回复的这个功能不需要程序来实现一般的邮箱都自带这个功能比如qq邮箱的话打开设置常规设置 下拉到假期自动回复的设置那里 点击启用选项然后输入自动回复的内容在下面不要选仅对联系人中的邮件地址进行回复。最后在左下角保存更改即可 这样不管谁给你发送邮件都可以自动回复他了。