Python 发送邮件
根据腾讯给出的例子改的
x
import smtplibimport emailfrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextfrom email.mime.image import MIMEImagefrom email.mime.base import MIMEBasefrom email.mime.application import MIMEApplicationfrom email.header import Headerfrom django.conf import settings
mailto_list = ['xxx@xxx.com','xxx@xxx.com']
mail_smtp = settings.MAIL_SMTPmail_user = settings.MAIL_USERmail_passwd = settings.MAIL_PASSWD
def send_mail(maillist,sub,cont): msg = MIMEMultipart('alternative') msg['Subject'] = Header(sub) msg['From'] = '%s <%s>' % (Header('xxxx'), mail_user) msg['To'] = ';'.join(maillist) msg['Message-id'] = email.utils.make_msgid() msg['Date'] = email.utils.formatdate() # 构建alternative的text/plain 纯文本部分 textplain = MIMEText(cont, _subtype='plain', _charset='UTF-8') msg.attach(textplain) # 构建alternative的text/html HTML超文本部分 # texthtml = MIMEText(cont, _subtype='html', _charset='UTF-8') # msg.attach(texthtml) try: Mail_server = smtplib.SMTP() Mail_server.connect(mail_smtp) Mail_server.set_debuglevel(0) Mail_server.login(mail_user,mail_passwd) Mail_server.sendmail(mail_user,maillist,msg.as_string()) Mail_server.quit() print('邮件发送成功!') except smtplib.SMTPConnectError as e: print('邮件发送失败,连接失败:', e.smtp_code, e.smtp_error) except smtplib.SMTPAuthenticationError as e: print('邮件发送失败,认证错误:', e.smtp_code, e.smtp_error) except smtplib.SMTPSenderRefused as e: print('邮件发送失败,发件人被拒绝:', e.smtp_code, e.smtp_error) except smtplib.SMTPRecipientsRefused as e: print('邮件发送失败,收件人被拒绝:', e.smtp_code, e.smtp_error) except smtplib.SMTPDataError as e: print('邮件发送失败,数据接收拒绝:', e.smtp_code, e.smtp_error) except smtplib.SMTPException as e: print('邮件发送失败, ', e.message) except Exception as e: print('邮件发送异常, ', str(e))
def send_start(mailto,title,output): mailto_list.append(mailto) title = title+'xxxx' send_mail(mailto_list,title,output)
def main(): mailto = ['xxx@xxxx.com'] title = "邮箱测试" output = "发送邮件测试" send_mail(mailto,title,output)
if __name__ == '__main__': main()
评论
发表评论