在linux测试了下python使用sendmail来发送邮件,两个字,'失败',后来想算了,研究半天这个,最后还是可能会被丢到垃圾箱,不如直接调BASH调用shell的mailx函数来发送邮件,可以看看我以前的笔记https://sulao.cn/post/490.html,这个也是会进垃圾箱
索性就直接使用第三方SMTP服务器(qq邮箱代理)发送邮件,本地测试了下,OK了,如果是使用网易或者其他SMTP服务器代码,就只需要修改下面的STMP服务器地址和端口,还有上面的sender_pass为邮箱密码或者授权码应该就可以了
我的代码如下
#!/usr/bin/python3 #coding:utf-8 import smtplib from email.mime.text import MIMEText from email.utils import formataddr #发件人邮箱 sender_mail = 'shevechco@qq.com' #这个是邮箱授权码,不是登录密码 sender_pass = '*******' #收件人邮箱 receiver = 'yang.su@***.com' #这个是邮件正文,有html格式文本,plain文本格式文档 message = MIMEText('这是一个python使用sendmail的测试邮件', 'plain', 'utf-8') #昵称和发件人邮箱 message['From'] = formataddr(['merci', sender_mail]) #收件人邮箱和昵称 message['To'] = formataddr(['yang.su', receiver]) #这里算是邮件标题 message['Subject'] = 'python sendmail test !' try: _send = smtplib.SMTP_SSL("smtp.qq.com", 465) #登录QQ邮箱 _send.login(sender_mail, sender_pass) _send.sendmail(sender_mail, receiver, message.as_string()) print('邮件发送成功!') _send.quit() except: print('Failed , 邮件发送失败!')