python基于SMTP协议发送邮件

  

本文实例为大家分享了python基于SMTP协议发送邮件的具体代码,供大家参考,具体内容如下

        #?usr/bin/env python   # - * -编码:utf - 8 - *   ”“”   @Time: 2018/5/31   @Author: LiuXueWen   @Site:   @File: sendEmail.py   @Software: PyCharm   @Description:使用SMTP协议发送邮件,支持同时发送给多个地址,支持同时发送文本信息,超文本信息和多附件   ”“”   进口smtplib   从email.mime。文本导入MIMEText   从email.mime。多部分进口MIMEMultipart   从电子邮件。头导入头   进口操作系统      类属性():   #设置服务器,“smtp.xx.com”   mail_host=" smtp.qq.com "   #用户名   mail_user=癅qq.com”   #口令   mail_pass=" "   # smtp服务器端口,每个服务商提供的邮件服务端口可能不一致,465是腾讯的端口   mail_port=465   #发送邮件的地址   发送方=癅vip.qq.com”   #接收邮件,可设置为你的QQ邮箱或者其他邮箱,列表类型,可同时填写多个地址并以,分割   接收器=癅qq.com”、“@qq.com”   #邮件发送的内容   messageText="测试使用\ n”   #邮件发送的超文本内容   messageHTML=" "   & lt; !DOCTYPE html>   & lt; html lang=癳n”比;   & lt; head>   & lt;元charset=皍tf - 8”比;   & lt; title> test   & lt;/head>   & lt; body>   & lt; img src=" https://cache.yisu.com/upload/information/20200622/113/34694.gif " alt=安馐浴笨矶?" 200 px高度=?00 px”比;   & lt;/body>   & lt;/html>   ”“”   #发送邮件方的别名展示(类似昵称),为空则显示发件方地址   messageFromHeader=" "   #接收邮件方的展示信息   messageToHeader=" python测试"   #邮件主题   messageSubject=" ceshiceshi123 "   #需要发送的附件的详细地址,支持多附件发送,附件之间以,分割   filePaths=' 1. txt”,“2. txt”,“3. txt”         def sendMail ():   #下面所有参数均可通过配置文件配置获取   ”“”   :param mail_host:设置服务器,“smtp.xx.com”   :param mail_user:用户名   :param mail_pass:口令   :param发送方:发送邮件的地址   :param接收器:接收邮件,可设置为你的QQ邮箱或者其他邮箱   :param messageText:邮件发送的文本内容   :param messageHTML:邮件发送的超文本内容   :param messageFromHeader:发送邮件方的别名展示(类似昵称)   :param messageToHeader:接收邮件方的展示信息   :param messageSubject:邮件主题   :param filePath:附件详细地址   返回:   ”“”   #需要获取的参数列   mail_host=properties.mail_host   mail_user=properties.mail_user   mail_pass=properties.mail_pass   mail_port=properties.mail_port   发送方=properties.sender   接收器=properties.receivers   messageText=properties.messageText   messageHTML=properties.messageHTML   messageFromHeader=properties.messageFromHeader   #如果发件人昵称未填写则直接使用发件人地址作为名称   如果messageFromHeader==啊?   messageFromHeader=发送方   messageToHeader=properties.messageToHeader   messageSubject=properties.messageSubject   filePaths=properties.filePaths      #邮件类型为“多部分/替代”的邮件包括纯文本正文(文本/普通)和超文本正文(text/html)。   #邮件类型为“多部分/相关”的邮件正文中包括图片,声音等内嵌资源。   #邮件类型为“多部分/混合”的邮件包含附件。向上兼容,如果一个邮件有纯文本正文,超文本正文,内嵌资源,附件,则选择混合类型。   消息=MIMEMultipart(混合)      #邮件显示信息内容   #发送邮件方的头部展示信息   消息['从']=头(messageFromHeader,“utf - 8”)   #接收邮件方的展示信息   消息[',']=头(messageToHeader,“utf - 8”)   #邮件主题   消息(“主题”)=头(messageSubject,“utf - 8”)      试一试:   #发送邮件附件,支持多附件发送   在filePath filePaths:   messageFile=开放(filePath rb) .read ()   message_file=MIMEText (messageFile base64,“utf - 8”)   消息(“内容类型”)='应用程序/八进制的   #目前发送附件不能使用message_file(“附加”)='附件;文件名=" aaa.txt "的方式发送信息   message_file。add_header(“附加”,“附件”,文件名=os.path.basename (filePath))   #附件内容   message.attach (message_file)   除了例外e:   打印”附件发送失败:“+ str (e)      第#一共三个参数,一个为发送文本信息,第二个发送类型,第三个发送信息的编码。如果想要发送html类型的信息,仅需要修改第二个参数“纯”为“html”即可   #文本信息,使用“平原”属性不能正常显示   message_text=MIMEText (messageText、“html”、“utf - 8”)   message.attach (message_text)      #超文本信息   message_html=MIMEText (messageHTML、“html”、“utf - 8”)   message.attach (message_html)         试一试:   #因为现在很多服务商做了安全验证,所有在发送邮件的时候需要把原来的smtplib.SMTP()改成现在的smtplib.SMTP_SSL()方式   smtpObj=smtplib.SMTP_SSL ()   #链接邮件服务器   smtpObj。连接(mail_host mail_port)   #登录邮件系统   smtpObj。登录(mail_user mail_pass)   #发送邮件信息   smtpObj.sendmail(发送方、接收方、message.as_string ())   打印”邮件发送成功”   除了例外e:   打印(“邮件发送失败,错误信息:“+ str (e))         if __name__==癬_main__”:   sendMail ()

python基于SMTP协议发送邮件