在用python做一些测试时候,不想一直盯着测试结果。当测试完成或者测试出现问题时候,希望能够快速提醒自己。这时候给自己发个邮件,手机邮箱就会收到消息。从而实现消息的快速获取。(本文章同步在公众号登出:Geekxiaobai)
1. 需要 import 的一些包
2. 发送邮件函数:
目前登录的邮箱是 163邮箱,亲测可用。最好不要用其它的。 接收消息的邮箱可以用qq邮箱。一些细节都在注释中标明了。
3. sendmail("需要发送的内容")
代码:
#python 邮件
#python3.6
#2018.08,25
#代码测试成功
import requests, bs4, smtplib
from email.mime.text import MIMEText
from email.header import Header
def sendmail(content):
smtp_server = 'smtp.163.com' #smt.qq.com
fromMail = '********@163.com' #发送消息的邮箱(登录邮箱)
mailPass = ('*********') #登录邮箱的登录密码
toMail = '*********@qq.com' #接收消息的邮箱
fromName = 'mywork'
subject = "python Email" #主题不能为test,否则报错554 DT:SPM
#mail = [
# 'From: %s <%s>' % (fromName, fromMail),
# 'To: %s' % ','.join(toMail),
# '',
# content
# ]
#mail = '\n'.join(mail)
msg = MIMEText(content)
msg['Subject'] = subject
msg['From'] = fromMail
msg['To'] = toMail
try:
s = smtplib.SMTP()
print('***正在连接服务器...')
s.connect(smtp_server)
s = smtplib.SMTP_SSL('smtp.163.com', 465)
print('***正在登录...')
s.login(fromMail, mailPass)
print('***sending...')
s.sendmail(fromMail, toMail, msg.as_string()) #msg.as_string()
print('*****send Sucess!***')
s.quit()
except Exception as e:
print('**** error---- ' + str(e))
if __name__ == '__main__':
sendmail(' sucess!,Have Fun!')
print('Done')
#s.quit()
总结:
亲测可用,邮件内容不要太少,否则可能被当做垃圾邮件。最后如果没有收到邮件,在垃圾邮件里面看看,可能被当做垃圾邮件处理掉了。