利用python发送邮件,python发送电子邮件

  利用python发送邮件,python发送电子邮件

  在学习如何使用python发送邮件之前,首先要知道什么是授权码

  授权码是用于登录第三方邮件客户端的专用密码

  网易通过邮箱获取授权码的方式

  如何通过qq邮箱获取授权码

  接下来,我们来看看如何使用python自动发送邮件

  导入smtplib

  从email.mime.text导入MIMEText

  Mail= smtp.163.com #邮箱服务器地址

  用户名发送=测试@163.com #电子邮件用户名

  密码=XXXX #电子邮件密码:需要授权码

  Username_recv=test@qq.com #收件人,多个收件人用逗号分隔

  Mail=MIMEText(这是发送邮件的内容)

  Mail[Subject]=这是邮件的主题

  mail[ From ]=username _ send # sender

  Mail[To]=username_recv #收件人;[]中有三个是固定写法别问为什么,我只是代码的搬运工

  Smtp=smtplib.smtp(邮件服务器,端口=25) #连接邮箱服务器,Smtp的端口号为25

  # SMTP=SMTP lib . SMTP _ SSL( SMTP . QQ . com ,port=465)# QQ邮箱的服务器和端口号

  Smtp.login(用户名_发送,密码)#登录邮箱

  smtp.sendmail (username _ send,username _ recv,mail.as _ string ()) #的参数分别是发送方和接收方,第三个是把上面发送的邮件内容变成一个字符串

  发送后退出smtp.quit() #

  打印后发送邮件(“成功”)

  升级邮件内容,我们会发一封带附件的邮件

  导入smtplib

  导入base64

  从email.mime.text导入MIMEText

  从email.mime.multipart导入MIMEMultipart

  Mail= smtp.163.com #邮箱服务器地址

  username _ send= mape ipei 04265 @ 163 . com #电子邮件用户名

  Password=las0312e #电子邮件密码:需要授权码

  username _ recv= 272932709 @ QQ . com #收件人,多个收件人之间用逗号分隔

  mail=MIMEMultipart()

  # file=r e:\ \ testpy \ \ python-MPP \ \ day 8 \ \ practice \ \ sendmail . py

  # att=mimetext(打开(文件,编码= UTF-8 )read ()) #这个只能发py或者txt附件,比较复杂的会报错

  file=r e:\ \ testpy \ \ python-MPP \ \ day 7 \ \ job \ \ data \ \ MPP . xls

  Att=mimetext (open (file, rb )read(), base64 , UTF-8) #这可以发送复杂的附件,比如表格

  att[内容类型]=应用程序/八位字节流

  #这一行处理附件的格式不知道为什么这样写,但是如果不写收到的附件就不是表格样式了

  new_file==?utf-8?“乙,”base64.b64encode(file.encode())decode()?=

  att[Content-Disposition]=附件;filename=“% s”% new _ file

  邮件.附件(附件)

  Mail.attach(MIMEText(这是带附件的邮件正文,假装很长)#邮件正文的内容

  Mail[Subject]=这是邮件的主题

  mail[ From ]=username _ send # sender

  Mail[To]=username_recv #收件人;[]中有三个是固定写法别问为什么,我只是代码的搬运工

  Smtp=smtplib.smtp(邮件服务器,端口=25) #连接邮箱服务器,Smtp的端口号为25

  # SMTP=SMTP lib . SMTP _ SSL( SMTP . QQ . com ,port=465)# QQ邮箱的服务器和端口号

  Smtp.login(用户名_发送,密码)#登录邮箱

  smtp.sendmail (username _ send,username _ recv,mail.as _ string ()) #的参数分别是发送方和接收方,第三个是把上面发送的邮件内容变成一个字符串

  发送后退出smtp.quit() #

  打印后发送邮件(“成功”)

  最后装上一个老师打包的邮箱功能,用的时候直接调用

  导入smtplib,os

  从email.mime.text导入MIMEText

  从email.mime.multipart导入MIMEMultipart

  导入base64

  类SendMail(对象):

  def __init__(自己,用户名,密码,接收,标题,内容,

  file=None,ssl=False,

  email_host=smtp.qq.com ,port=25,ssl_port=465):

  :param用户名:用户名

  :param passwd:密码

  :param recv:收件人,要发送的列表的多个[a@qq.com,b@qq.com]

  :参数标题:消息标题

  :param内容:消息正文

  :param文件:附件路径如果它不在当前目录中,请写一个绝对路径默认没有附件

  :param ssl:链接是否安全;默认为正常

  :param email_host: smtp服务器地址,默认为163服务器

  :参数端口:非安全链接端口,默认为25

  :param ssl_port:安全链接端口,默认为465

  self.username=用户名#用户名

  self.passwd=passwd #密码

  self.recv=recv #收件人,多个要传列出[a@qq.com,b@qq.com]

  self.title=title #邮件标题

  self.content=内容#邮件正文

  self.file=file #附件路径,如果不在当前目录下,要写绝对路径

  自我电子邮件主机=电子邮件主机# SMTP服务器地址

  self.port=port #普通端口

  self.ssl=ssl #是否安全链接

  self.ssl_port=ssl_port #安全链接端口

  定义发送邮件(自己):

  msg=MIMEMultipart()

  #发送内容的对象

  if self.file:#处理附件的

  文件名=操作系统路径分裂(自我文件)[-1]#只取文件名,不取路径

  尝试:

  f=open(self.file, rb ).阅读()

  例外情况为e:

  引发异常(附件打不开!)

  否则:

  att=MIMEText(f, base64 , utf-8 )

  属性[内容类型]=应用程序/八位字节流

  # base64b 64编码(文件名encode()).解码()

  new_file_name==?utf-8?"乙,“base64b 64编码(文件名encode()).decode()?=

  #这里是处理文件名为中文名的,必须这么写

  att[内容处置]=附件;文件名=%s%(新文件名)

  消息附加(附件)

  味精附加(mime文本(自身内容))#邮件正文的内容

  消息[主题]=self.title #邮件主题

  msg[From]=self.username #发送者账号

  消息[到]=, .加入(self.recv) #接收者账号列表

  if self.ssl:

  self.smtp=smtplib .SMTP_SSL(self.email_host,port=self.ssl_port)

  否则:

  self.smtp=smtplib .SMTP(self.email_host,port=self.port)

  #发送邮件服务器的对象

  self.smtp.login(self.username,self.passwd)

  尝试:

  自我SMTPsendmail(自己用户名,self.recv,msg.as_string())

  及格

  例外情况为e:

  打印(出错了e)

  否则:

  打印(发送成功!)

  self.smtp.quit()

  if __name__==__main__ :

  m=SendMail(

  用户名=test@qq.com,

  passwd=xxxxx

  x ,

   recv=[test001@163.com , test002@qq.com],

  title=发送邮件20180205,

  内容=测试发送邮件,qq发件,接收方一个是163邮箱,另一个是即时通信软件邮箱。20180205,

  file=r e:\ \ testpy \ \ python-MPP \ \第7天\ \作业\\data\\mpp.xls ,

  ssl=True,

  )

  发送邮件()

  转载于:https://www。cnblogs。com/MPP 0905/p/8419869。超文本标记语言

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: