利用python发送邮件

作者: 简讯Alfred | 来源:发表于2016-12-06 22:57 被阅读2662次

在搜索python教程的时候,碰巧遇到了“利用python发送电子邮件”的教程,觉得很实用也比较有意思,所以就花了点时间学习发送邮件的脚本是怎样实现的。我主要是利用SMTP(简单邮件传输协议)来实现邮件的发送。

首先要安装SMTPemail的库

运行cmd,输入:

pip install secure-smtplib

pip install email

这样我们所需的库就安装好了。

网上大部分的教程,说什么好呢,有些时候我真的很奇怪,他们在写完教程以后会不会再按着自己的教程运行一遍,因为我一步一步按着教程做下来,还是会提示我各种错误,猝不及防。不过这个教程遇到的错误,最终还是解决了,因为解决办法是在手机上搜到的,那份教程找不到,网站就贴不上来了。进入正题,贴代码:

#coding: utf-8

import smtplib
from email.mime.text import MIMEText
from email.header import Header

sender = raw_input("Please enter a sender email address:\n> ") #“我”的邮箱
password = raw_input("keywords:\n> ") #密码
receiver = raw_input("Please enter a receiver address:\n> ") #接收者邮箱
subject = raw_input("Title:\n> ") #邮件标题
words = raw_input("Text:\n> ") #邮件正文
smtpserver = 'smtp.163.com'

msg = MIMEText(words, 'plain', 'utf-8')#中文需参数‘utf-8',单字节字符不需要
msg['Subject'] = Header(subject, 'utf-8') #邮件标题
msg['from'] = sender #发信人地址
msg['to'] = receiver #收信人地址

smtp = smtplib.SMTP()
smtp.connect('smtp.163.com')
smtp.login(sender, password)
smtp.sendmail(sender, receiver, msg.as_string()) #这行代码解决的下方554的错误
smtp.quit()
print "邮件发送成功!"

这个脚本比较简单,但是可以发送成功,网上有些教程运行会提示错误:

554 DT:SPM 发送的邮件内容包含了未被许可的信息,或被系统识别为垃圾邮件。请检查是否有用户发送病毒或者垃圾邮件;

在上边代码标注了,我找到的解决办法主要和那行代码有关系,为什么我还没有弄明白。这段代码还有一个缺点是邮件的标题只能为英文,如果换成中文的话会提示编码错误:

UnicodeDecodeError: ‘utf8’ codec can’t decode byte 0xb1 in position 0: invalid start byte

需要注意的是,如果你用的是163邮箱,需要设置客户端授权密码。

邮箱客户端授权密码

在“设置”里找到“客户端授权密码”,开启并输入你要设置的密码,在python代码中用到的密码就是你设置的“客户端授权密码”。

测试效果:

邮件测试

相关文章

  • 利用python发送邮件

    在搜索python教程的时候,碰巧遇到了“利用python发送电子邮件”的教程,觉得很实用也比较有意思,所以就花了...

  • 利用Python 发送邮件

    概要 我们都知道SMTP(简单邮件传输协议),是一组用于从原地址到目的地址传输邮件的规范,通过它来控制邮件的中转方...

  • python自动发送邮件

    python自动发送邮件 在说python发送邮件之前,需要了解一下简单的邮件发送知识,邮件发送一般通过SMTP协...

  • python利用smtp发送邮件

    因为邮件的服务器使用"smtp.qq.com",所以先去qq邮箱账号设置里开放服务。 上面代码执行后,会发现没有主...

  • python利用yagmail发送邮件

    python发送邮件是利用smtplib库,之前操作少玩有点浮躁,找到一个更简单的yagmail。下面说说具体怎么...

  • python利用smtp发送邮件

    今日份的分享,是如何发送邮件,直接甩代码的那种。首先导入需要的库及模块 输入一些发送邮件需要的信息 然后就是发邮件...

  • Python3实现自动定时发送邮件功能

    Python SMTP发送邮件 SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件、H...

  • Python入门系列--邮件--day02

    参考地址: Python发送邮件给多人 Python邮件功能 - 使用163邮箱SMTP服务器发送邮件

  • python收发邮件

    Python发送邮件的两个包: smtplib 用来发送邮件。 email 用来构建邮件。 Python 的 em...

  • Linux中通过SHELL发送邮件

    笔者做过做过使用python发送邮件-Python使用yagmail库发送邮件[https://www.jia...

网友评论

    本文标题:利用python发送邮件

    本文链接:https://www.haomeiwen.com/subject/blxdmttx.html