• 售前

  • 售后

热门帖子
入门百科

Python基于SMTP发送邮件的方法

[复制链接]
划翔的青鸟纲 显示全部楼层 发表于 2021-10-26 13:29:07 |阅读模式 打印 上一主题 下一主题
目次


  • 构建消息对象
  • 发送邮件
  • 要点
在许多时间,利用 Python 发送邮件大概没有办法利用邮件服务器提供的 API,由于不是所有的邮件服务商都会提供 API 供客户利用的。
通常利用邮件 API 的邮件发送服务都必要额外的收费。
因此我们再邮件测试发送的时间,大概必要的是 SMTP 邮件发送服务,通常这个服务是所有邮件服务商都会提供的。
要利用 SMTP 邮件发送服务,你必要有下面的信息才可以完成和测试:
      
  • SMTP 邮件服务器的地点,端口,登任命户名和登任命户密码  
  • 发送和汲取邮件的地点  
  • 邮件的主题和正文
看起来是不是有点复杂,实际上,Python 提供了一个sendmail 的方法,这个方法在 smtplib 库中。

简朴来说按照下面的步骤来做就可以了。

构建消息对象


在 Python 中有一个库为 MIMEMultipart,我们可以利用这个来构建消息对象。

要做的事变也比力简朴,在界说 MIMEMultipart 对象后,你必要在这个对象中设置是谁发送的,发送给谁,主题是什么。
然后再在这个对象中插入正文,你可以插入 HTML 也可以插入纯文本。
为了让邮件比力美观,通常我们都会插入 HTML 的文本,许多时间为了插入更多的数据,我们还大概会用到模板。

发送邮件


在界说完成消息对象后,我们就可以发送邮件了。
在发送邮件之前,我们必要初始化 SMTP 对象,通常利用的是 smtplib.SMTP(smtpserver) 方法。
在这个方法中,我们会界说发送邮件服务器的地点和端口。
随后我们大概会调用一个 starttls 方法,这个方法是盼望发送邮件服务器利用的是 TLS 模式。
随着技术的进步,和安全的考虑,许多邮件发送服务器都要求利用 TLS 模式来举行发送。
然后利用 server.login(email_user, email_passwd) 方法来登录服务器。
在上面的步骤完成后,我们就即是完成了你的 Python 代码和邮件服务器的通信了,你的代码在这个时间会拿到服务器的对象了,而且完成了对象的初始化了。
在这一步完成后就可以调用 sendmail 函数发送邮件。
当邮件发送完成后,不要忘记关闭邮件服务器的毗连。
  1. # Connect to the SMTP server
  2. server = smtplib.SMTP(smtpserver)
  3. server.starttls()
  4. server.login(email_user, email_passwd)
  5. sending_response = server.sendmail(from_addr, to_addr, message.as_string())
  6. print(sending_response)
  7. server.quit()
复制代码
针对上面的发送服务,请参考下上面提供的伪代码。
完备的测试代码请参考 GitHub 上面的:python-tutorials/SendMailSMTP.py at master · cwiki-us-docs/python-tutorials · GitHub

要点


Python 发送邮件的服务照旧比力简朴的。
由于邮件发送服务都必要和第三方的邮件服务器举行通信,在这个通信的过程中,最紧张的步骤就是先要得到邮件服务器的链接。
通常这个链接由于有防火墙,发送用户名限定,密码要求等等大概会导致毗连得到失败而没有办法拿到毗连服务器的对象。
针对碰到的情况详细问题详细分析就可以了。
遵照的原则步骤就是:
      
  • 构建消息  
  • 得到服务器毗连  
  • 发送邮件  
  • 关闭服务器毗连
必要留意的是不要忘记关闭服务器毗连。
以上就是Python基于SMTP 发送邮件的方法的详细内容,更多关于Python SMTP 发送邮件的资料请关注草根技术分享别的相干文章!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作