生活中我们经常发送邮件,那么我们能不能用Python写一个自动发送邮件的功能呢?答案是肯定的!!!
开始实现功能之前我们需要开启我们邮箱的 IMAP/SMTP功能,我们先了解一下什么是IMAP/SMTP。
SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。
IMAP全称是Internet Mail Access Protocol,即交互式邮件存取协议,它是跟POP3类似邮件访问标准协议之一。不同的是,开启了IMAP后,您在电子邮件客户端收取的邮件仍然保留在服务器上,同时在客户端上的操作都会反馈到服务器上,如:删除邮件,标记已读等,服务器上的邮件也会做相应的动作。所以无论从浏览器登录邮箱或者客户端软件登录邮箱,看到的邮件以及状态都是一致的。
在这里我用的是163邮箱,其他邮箱原理相同,有兴趣的可以实现以下。
-
开启163邮箱的 IMAP/SMTP
-
<h2>启用客户端授权密码</h2> <p> 在这里我们会验证手机号,然后设置一个授权密码,这个授权密码就用来登录我们的账号</p> <p style="text-align:center;"><img alt="" class="has" height="443" src="https://img-blog.csdnimg.cn/20190115193206749.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lvdW5nX2ZvcnlvdQ==,size_16,color_FFFFFF,t_70" width="800" /></p> </li> <li> <h2>python代码实现<br /> </h2>
import smtplib from email.mime.text import MIMEText subject = "白菜先森的第一封python发送的邮件" #邮件的主题 content = "<a href='https://blog.csdn.net/young_foryou' > 以动手实践为荣,以只看不练为耻;以打印日志为荣,以单步跟踪为耻;以空格缩进为荣,以制表缩进为耻;以单元测试为荣,以人工测试为耻.</a>" #邮件内容 sender = "baicaixiansen@163.com" #发件人 password = '12356789qq' #刚才我们在163邮箱里设置的授权密码 receivers =[ "1501540791@qq.com",'157646342@qq.com','157132425432@qq.com','150987970@qq.com'] #收件人 for receiver in receivers: message = MIMEText(content,"html","utf-8") message["From"] = sender message["To"] = receiver message["Subject"] = subject smtp = smtplib.SMTP_SSL('smtp.163.com',994) smtp.login(sender,password) smtp.sendmail(sender,[receiver],message.as_string()) smtp.close() time.sleep(5)
<p> </p> </li>
到这里一封通过python群发的邮件就完成了!
来源: