开发环境:

系统:Ubuntu 16.04 LTS

版本:python 3.5.2

邮箱服务器:stmp.126.com

注意:

1.不可正文群发带图,不然会被stmp.126.com认定为垃圾邮件,发不出去 - -!!! 也就是说该代码群发的话,只能用plain纯文本模式.

2.由于我的邮箱服务器是126的,所以建议也使用126邮箱测试,测试的前提是你需要开通客户端授权,开通后会让你设置密码,那个密码要记好,下面的passwd接收的是授权密码而不是邮箱密码!

3.代码中需要改的地方的地方: 发件人/授权密码/收件人/附件中图片的路径,以及下面的图片格式

若不需要发附件,把with:代码块隐藏即可

下面直接贴代码部分了,我自己已经测试过代码了,在以上环境运行没有问题,群发,单发,附件,邮件正文带图等等.

#!/usr/bin/python3

# coding:utf-8

#=========================================================================

# 加密SMTP

#

# 使用标准的25端口连接SMTP服务器时,使用的是明文传输,发送邮件的整个过程可能会被窃听。要更安全地发送邮件,可以加密SMTP会话,实际上就是先创建SSL安全连接,然后再使用SMTP协议发送邮件。

#=========================================================================

from email import encoders

from email.header import Header

from email.mime.base import MIMEBase

from email.mime.multipart import MIMEMultipart

from email.mime.text import MIMEText

from email.utils import parseaddr, formataddr, formatdate

import smtplib

# return Alias_name

def _format_addr(s):

name, addr = parseaddr(s)

return formataddr((Header(name, 'utf-8').encode(), addr))

# 接收参数: 发件人地址

from_addr = '你的邮箱地址'

# 接收参数: 客户端授权密码

passwd = '你的客户端授权密码'

# 接收参数: 收件人地址,可多个

to_addrs = ['ex@qq.com', 'ex@163.com', 'ex@gmail.com']

# 接收参数: SMTP服务器(注意:是发件人的smtp服务器)

smtp_server = 'smtp.126.com'

# 接收参数: 邮件主题

subject = '人生苦短'

# 接收参数: 邮件正文

plain = '我用python!'

# 带附件邮件

# 指定subtype为alternative,同时支持html和plain格式

msg = MIMEMultipart('alternative')

# 邮件正文中显示图片,同时附件的图片将不再显示

# plain = 'Hello world and hello me!'

msg.attach(MIMEText(str(plain), 'plain', 'utf-8')) # 纯文本

# html = '

Hello

'

# msg.attach(MIMEText(html, 'html', 'utf-8')) # HTML

# 添加附件:即关联一个MIMEBase,图片为本地读取

with open('/home/uxeix/Pictures/icon/favicon (Jianshu).ico', 'rb') as f:

# 设置附件中的MIME和文件名

mime = MIMEBase('image', 'jpeg', filename='hot.jpg')

# 加上必要的头信息

mime.add_header('Content-Disposition', 'attachment',

filename='hot.jpg')

mime.add_header('Content-ID', '<0>')

mime.add_header('X-Attachment-Id', '0')

# 把附件的内容读进来

mime.set_payload(f.read())

# 用Base64编码

encoders.encode_base64(mime)

# 添加到MIMEMultipart

msg.attach(mime)

# 未指定用户别名,则客户端会自动提取邮件地址中的名称作为邮件的用户别名

msg['From'] = _format_addr(from_addr)

# msg['To'] = _format_addr(to_addrs)

msg['To'] = '%s' % ','.join([_format_addr('' % to_addr)

for to_addr in to_addrs])

msg['Subject'] = Header(str(subject), 'utf-8').encode()

msg['Date'] = formatdate()

#=========================================================================

# 发送邮件

#=========================================================================

try:

# SMTP服务器设置(地址,端口):

server = smtplib.SMTP_SSL(smtp_server, 465)

# server.set_debuglevel(1)

# 连接SMTP服务器(发件人地址, 客户端授权密码)

server.login(from_addr, passwd)

# 发送邮件

server.sendmail(from_addr, to_addrs, msg.as_string())

print('邮件发送成功')

except smtplib.SMTPException as e:

print(e)

print('邮件发送失败')

finally:

# 退出SMTP服务器

server.quit()

python自动发邮件运行正常就是收不到邮件是为什么_python stmp module 163邮箱发送邮件不成功...相关推荐

  1. python显示邮件发送成功失败_python stmp module 163邮箱发送邮件不成功

    问 题 http://blog.csdn.net/lucahan/... 我照着这个的教程试了下,就卡在connect服务器上,一直连不上,我上网没有问题. 求教是什么原因! 解决方案 因为这很多教程 ...

  2. 通过Python自动发邮件《生如夏花》

    今天ajupyter和姐姐出去逛了一天街,累死了.晚上读了一首非常美丽的诗词,是泰戈尔的<生如夏花>,感觉非常美,再加上前几天学会了用python自动发邮件,决定把这首诗发给自己的好朋友欣 ...

  3. python发送邮件 python发送qq,163,sohu, xinlang, 126等邮件 python自动发邮件总结及实例说明...

    python发邮件需要掌握两个模块的用法,smtplib和email,这俩模块是python自带的,只需import即可使用.smtplib模块主要负责发送邮件,email模块主要负责构造邮件. sm ...

  4. python 自动发微博 (微博H5接口)

    python自动发微博,调用微博H5接口 最近一直在研究这个,希望能用微博引流,话不多说 # /usr/bin/env python # -*- coding:utf-8 -*- import thr ...

  5. Python自动发短信给自己手机

    Python自动发短信给自己手机 国外有一家公司Twilio推出了一项自动发送短信的服务,只需要在官网上注册并且获取权限即可,这在我们做服务器监控或者其他监控内容时有很大的作用,下面我直接提出代码. ...

  6. java 给qq邮箱发邮件_java实现163邮箱发送邮件到qq邮箱成功案例

    这篇文章主要为大家分享了java实现163邮箱发送邮件到qq邮箱成功案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 下载和上传附件.发送短信和发送邮件,都算是程序中 ...

  7. python 发送邮件 163_python练习-使用163邮箱发送邮件

    具体代码如下> #密码等敏感信息已经用****替换 import smtplib,sys from email.mime.text import MIMEText from email.head ...

  8. python自动化发送邮件_python接口自动化(三十三)-python自动发邮件总结及实例说明番外篇——下(详解)...

    简介 发邮件前我们需要了解的是邮件是怎么一个形式去发送到对方手上的,通俗点来说就是你写好一封信,然后装进信封,写上地址,贴上邮票,然后就近找个邮局,把信仍进去,其他的就不关心了,只是关心时间,而电子邮 ...

  9. python接口自动化(三十三)-python自动发邮件总结及实例说明番外篇——下

    简介 发邮件前我们需要了解的是邮件是怎么一个形式去发送到对方手上的,通俗点来说就是你写好一封信,然后装进信封,写上地址,贴上邮票,然后就近找个邮局,把信仍进去,其他的就不关心了,只是关心时间,而电子邮 ...

最新文章

  1. 剑指offer_第20题_包含min函数的栈_Python
  2. 【RocketMQ工作原理】消息的生产过程
  3. 下载编译网站生成chm
  4. 第一次react-native项目实践要点总结
  5. vc判断文件夹是否存在
  6. 分享一个JDK1.8丢失数字精度的案例
  7. 计算机网络工程课程设计报告,计算机网络工程课程设计报告.doc
  8. 使用Scrapy框架发送POST请求
  9. 读WAF与IPS的区别总结之摘抄
  10. [JavaScript]return false;和e.preventDefault();的区别
  11. 计算机硬件配置组件,配置vcenter server的硬件(默认指windows版本的)
  12. maltab求解微分方程
  13. 修改eclipse皮肤
  14. Luogu 3267 [JLOI2016/SHOI2016]侦察守卫
  15. World Wind Java开发之十四——添加WMS地图服务资源(转)
  16. java tcp 字节数_服务器无法接收大小超过1500字节的TCP数据包
  17. VB让控件可以当标题栏拖动
  18. Python入门--python中的global
  19. phonegap文件上传(java_php),Android应用开发之使用PhoneGap实现位置上报功能
  20. GPS定位基本原理解析

热门文章

  1. linux关闭内核命令,Linux内核关闭IPv6协议的方式
  2. Spring源码:BeanDefinition
  3. 声学多普勒流速剖面仪_雷达流量计/流速仪厂家有哪些?
  4. mac用vscode打开html,Mac 命令行打开VsCode
  5. linux启动nifi指令,Nifi 组件脚本开发 - ExecuteScript 使用指南 (二)
  6. python 设置输入法为英文,appium+python环境下的输入法切换
  7. nfc uid几个字节有值为0的吗_字节小哥哥自述:从实习到转正的心路历程
  8. 中input怎么接受后台传值_[vue3]如何在vue3中优雅地使用vmodel?
  9. android 调出键盘表情_Android 软键盘和emoji表情切换方案,和微信几乎一样的体验...
  10. python linux编程与window编程_Python3如何在Windows和Linux上打包