在搜索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 Headersender = 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代码中用到的密码就是你设置的“客户端授权密码”。

测试效果:

sendmail.py

利用python发邮件相关推荐

  1. day21-办公自动化:利用Python发邮件

    Excel中绘制图表 下载三方库openpyxl pip install openpyxl from datetime import datetimefrom openpyxl from openpy ...

  2. python 发邮件 timeout_python发送邮件

    一.相关模块介绍 发送邮件主要用到了smtplib和email两个模块,这里首先就两个模块进行一下简单的介绍: 1.smtplib模块 smtplib.SMTP([host[, port[, loca ...

  3. python发邮件有什么意思_python发邮件要装什么

    在介绍具体的实现python发邮件的具体操作之前,我觉得有必要介绍下SMTP,更有助于理解python发邮件的实现原理.SMTP协议属于TCP/IP协议簇,即简单邮件传输协议,它是一组用于由源地址到目 ...

  4. python发邮件图片太长显示不出来_小白入门,用python 发送定时邮件,将Dataframe转为邮件正文,链接显示为图片...

    在实际工作中,我们常常会遇到定时发送邮件的任务,基于我的实践,分享给大家,也许一篇文章写不完,就先列个目录. 本文想要解决的问题: 用python构造一封邮件,并设置定时发送出去.往往,这只是最低级的 ...

  5. python发邮件详解,smtplib和email模块详解

    在介绍具体的实现python发邮件的具体操作之前,我觉得有必要介绍下SMTP,更有助于理解python发邮件的实现原理.SMTP协议属于TCP/IP协议簇,即简单邮件传输协议,它是一组用于由源地址到目 ...

  6. Python基础笔记_Day12_Python元类、type动态创建类、Python动态创建方法、Python运算符、Python发邮件、短信

    Day12_Python元类.type动态创建类.Python动态创建方法.Python运算符重载.Python发邮件.短信 12.01_Python语言基础(类对象)(熟悉) 12.02_Pytho ...

  7. Python发邮件时报错 554

    Python发邮件时报错 554 错误: smtplib.SMTPDataError: (554, b'DT:SPM 163 smtp10,DsCowAA3h9_QbgZXI9_fCQ--.713S2 ...

  8. python发邮件详解 -- smtplib和email模块

    文章目录 python发邮件详解,-->smtplib和email模块 1.python发邮件所需要的基础包 2.smtplib的用法 3.email模块的详细理解和使用 A.MIMEText对 ...

  9. 网易163邮箱开通smtp邮件协议后用python发邮件

    网易SMTP开通及python发邮件 1.登录 2.设置 开启服务 短信验证开启服务 得到授权码 3.发文本代码 4.发html代码 1.登录 网易邮箱登录注册地址 https://email.163 ...

最新文章

  1. 网络模型--Squeeze-and-Excitation Networks
  2. python中数据分析的流程为-python数据分析011_数据分析流程
  3. An error has occurred while drawing:java.lang.IllegalStateException: The display list is not valid.
  4. MyBatis中动态SQL
  5. SQL允许你用EXECUTE执行一个变量中定义的SQL语句,并且允许你在被执行的SQL语句中,再次嵌套入一个变量定义的语句,并且再次在其中用EXECUTE执行它...
  6. ajax css文件,wordpress 添加JS,css文件,实现AJAX效果
  7. What is the !! (not not) operator in JavaScript?
  8. python进阶小技巧
  9. 如何查看MySQL源码
  10. 电阻电容串联并联关系,一辈子受益
  11. DAY16-T1342面试题 05.08 -2022-01-31-非自己作答
  12. 2021秋软工实践第一次个人编程作业
  13. 报错Check constraint “book_chk_1“ is violated。难道MySQL中insert 语句只能一条一条插入?
  14. 订单打标java_java 操作打标机的Dll 文件
  15. 做程序界中的死神,获取自己的灵力修养
  16. 电商后台设计:品类管理
  17. 我博士科研经历中的经验和教训——朱亮
  18. Java切割录音文件
  19. ellisys 蓝牙抓包工具 FAQ
  20. 新手快速提升战力攻略-《无间狱》

热门文章

  1. python手写字体程序_深度学习---手写字体识别程序分析(python)
  2. 二叉树学习笔记(未完待续)
  3. 已知最小小行星准备迎接人类探视
  4. 聊聊云原生时代湖仓一体建设
  5. Win 7+CentOS 7双系统安装血泪史T_T
  6. 约数之和 c语言,(c语法百题20)约数之和,约数之和
  7. 写博客,轻松拿大奖!博客征文第二期:那些年我们一起写过的代码
  8. 业余LaTeX学习笔记(一)-引言
  9. 现代A200(MoboDA3360)玩家宝典
  10. linux学习——echo -n 和echo -e 参数意义