使用python3发送电子邮件,我之前在网上找了好几篇文章不论是都不行,最后在网上找到这篇文章了!
首先在163邮箱开启授权码
记住这个授权密码,我们在python代码里面用的就是这个密码
不然会出现这个报错
# -*- coding:utf-8 -*- import smtplib from email.header import Header from email.mime.text import MIMEText # 第三方 SMTP 服务 mail_host = "smtp.163.com" # SMTP服务器 mail_user = "[email protected]" # 用户名 mail_pass = "08556220" # 授权密码,非登录密码 sender = '[email protected]' #发邮件人 receivers = '[email protected],[email protected]' #收邮件人 content = 'test mail的内容' #邮件内容 title = 'test mail' # 邮件主题 def sendEmail(): message = MIMEText(content, 'plain', 'utf-8') # 内容, 格式, 编码 message['From'] = "{}".format(sender) message['To'] = receivers message['Subject'] = title try: smtpObj = smtplib.SMTP_SSL(mail_host, 465) # 启用SSL发信, 端口一般是465 smtpObj.login(mail_user, mail_pass) # 登录验证 smtpObj.sendmail(sender, receivers, message.as_string()) # 发送 print("mail has been send successfully.") except smtplib.SMTPException as e: print(e) # def send_email2(SMTP_host, from_account, from_passwd, to_account, subject, content): # email_client = smtplib.SMTP(SMTP_host) # email_client.login(from_account, from_passwd) # # create msg # msg = MIMEText(content, 'plain', 'utf-8') # msg['Subject'] = Header(subject, 'utf-8') # subject # msg['From'] = from_account # msg['To'] = to_account # email_client.sendmail(from_account, to_account, msg.as_string()) # email_client.quit() if __name__ == '__main__': sendEmail() # receiver = '***' # send_email2(mail_host, mail_user, mail_pass, receiver, title, content)
文章借鉴
http://blog.csdn.net/sunhuaqiang1/article/details/70833199
原文地址:http://blog.51cto.com/853056088/2073898
时间: 2024-10-07 05:10:27