2019.1.30更新
对于在阿里云服务器上运行本博客有几处需要改动的地方。
首先因为阿里云服务器里面有很多端口都被限制,所以以下的代码在本地可以成功,但在云服务器上并出现问题
通过我的不断实验,最终成功的为port=587
并且我发送的邮件改为qq邮箱,接受为网易163邮箱,服务器host也改为"smtp.qq.com"
qq邮箱授权码获取方式在以下ps中讲解

一、前言

利用python进行邮件的发送,这个功能自我感觉主要应用于检测或者报告之类,我两次运用这个功能。

  • 第一次用在主要发送实时的数据给一个邮箱
  • 第二次用是检测挂在服务器端一直再跑的python程序是否出现异常情况。

我这里采用163邮箱(sender)给qq邮箱(receiver)发送文本类邮件

二、提取163邮箱的客户端授权密码

首先登陆163邮箱的网页版本。

最后点击开启,自己设置密码即可。
之后这个密码不要忘记了,代码中要用到。

三、代码

show you my code

from smtplib import SMTP
from email.mime.text import MIMEText
from email.header import Header"""function: 利用模型进行推理Parameters:SMTP_host:  string类型,SMTP 服务器主机ip地址。 这里为 "smtp.163.com" from_addr:  string类型,发送方,也就是作用为发送邮件的邮箱地址 password:  string类型,邮箱的授权码,而不是邮箱的登陆密码,可从邮箱获得,就是上面二所讲获取的授权码。to_addrs:  list里面嵌套string类型,接收邮件的邮箱地址,可以有多个接收邮件的邮箱地址。subject:   string类型,主题content:   string类型,内容Returns:CSDN:http://blog.csdn.net/qq_33431368"""
def send_email(SMTP_host, from_addr, password, to_addrs, subject, content):email_client = SMTP(SMTP_host) #初始化 SMTP类,SMTP服务使用的端口号默认为25,这里默认情况,也可自己设置port参数email_client.login(from_addr, password) #登陆服务器# 以下在下面的结果图片中再具体标出说明msg = MIMEText(content, 'plain', 'utf-8') #可以理解为发送这个邮箱内容的类,这句话主要是设置这个邮件内容msg['Subject'] = Header(subject, 'utf-8') # 设置邮箱主题,也就是标题msg['From'] = from_addr  # 这个是最后显示的邮件的frommsg['To'] = "".join(to_addrs)     # 这个是最后显示的邮件的toemail_client.sendmail(from_addr, to_addrs, msg.as_string()) #发送信息,将msg转换为stringemail_client.quit()# 退出服务器if __name__ == "__main__":hoster = "smtp.163.com"sender_email = "XXXXXXXXX@163.com"Authorization_code= "XXXXXXXXXXX"receiver_email = ["XXXXXXXX@qq.com"]# 这里如果需要发送多个邮箱,形式为["xxxqq.com","xxx163.com","xxx126.com"]subject = "我发送邮件了"text = "今天天气真好"send_email(hoster, sender_email, Authorization_code, receiver_email, subject, text)

四、结果

可能出现这个问题

smtplib.SMTPDataError: (554, b'DT:SPM 163 smtp12,

解决方案,把测试和test类似的语句换掉,比如我的demo code中的比较正常的语言即可。

接收邮箱显示。


有subject和content对应。

ps(2019.1.30):

获取qq邮箱授权码

点击开启,给qq官方发送一个短信即可获得,别忘了复制保存。

修改后的代码有改动,请自己对照使用,亲测好用

from smtplib import SMTP
from email.mime.text import MIMEText
from email.header import Headerdef send_email(SMTP_host, from_addr, password, to_addrs, subject, content):"""port = 587在登陆邮箱前加上email_client.starttls()这句话"""email_client = SMTP(SMTP_host, 587) email_client.starttls()email_client.login(from_addr, password)msg = MIMEText(content, 'plain', 'utf-8')msg['Subject'] = Header(subject, 'utf-8')#subjectmsg['From'] = from_addrmsg['to'] = ''.join(to_addrs)email_client.sendmail(from_addr, to_addrs, msg.as_string())email_client.quit()if __name__ == "__main__":"""sender和receiver对调   """receiver = ["xxx@163.com"]send_email("smtp.qq.com","xxx@qq.com","shouquanma",receiver ,"程序出问题了","ps")

结果

【TOOLS】python3利用SMTP进行邮件Email自主发送相关推荐

  1. nginx $mail-send()发送邮件报错_基于SMTP协议的E-MAIL电子邮件发送客户端软件C#实现...

    摘 要 电子邮件在当今社会中扮演了一个很重要的角色.越来越多的人在使用它.而且用它的人数势必会继续增加.虽然,现在已经有很多的邮件收发软件例如著名的FoxMail 但是对于大多数的非专业的人来说它还是 ...

  2. 利用SMTP收发邮件

    邮件服务器: SMTP:发送.接收 POP3:分捡 测试:从shanghai向nanjing发送邮件 一.实验准备 1. shanghai IP:192.168.11.72 DNS:192.168.1 ...

  3. SMTP简单邮件协议邮件的组成、作用及过程

    1.    电子邮件系统由哪几部分组成?各部分的主要作用是什么? 假设Bob(bob@ucla.edu)给Alice( alice@stanford.edu)写一封电子邮件,请描述从Bob写电子邮件到 ...

  4. php smtp邮件类,php利用smtp类发送邮件

    本篇文章主要介绍php利用smtp类发送邮件,感兴趣的朋友参考下,希望对大家有所帮助. 以下就是核心代码:<?php require_once "email.class.php&quo ...

  5. E-mail概述 | 邮件发送协议SMTP与邮件读取协议POP3、IMAP

    文章目录 电子邮件系统的组成 用户代理UA(User Agent) 邮件服务器 邮件发送协议 邮件读取协议 POP3 IMAP POP3与IMAP的对比 基于万维网的电子邮件 补充与思考 摘抄于文献 ...

  6. 安装了email模块还是报错_科普:利用Python smtplib和email模块实现自动发送邮件功能...

    概要 我们都知道SMTP(简单邮件传输协议),是一组用于从原地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式.SMTP规定电子邮件应该如何格式化.如何加密,以及如何在邮件服务器之间传递.SMT ...

  7. python3利用smtplib通过qq邮箱发送邮件

    前言 本文主要给大家介绍了关于python3 smtplib通过qq邮箱发送邮件的相关内容, smtplib模块是smtp简单邮件传输协议客户端的实现,为了通用性,有时候发送邮件的时候要带附件或图片, ...

  8. python使用SMTP发邮件时使用Cc(抄送)和Bcc(密送)

    SMTP发送邮件的时候,并没有特殊的通信语句告诉邮件服务器 谁是主送,谁是抄送/密送,这三个角色都是以同样的方式告诉邮件服务器的,然后重点在邮件内容里. 邮件内容分为头和体两部分(就像http),头部 ...

  9. 利用python发邮件

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

最新文章

  1. Socket网络编程(2)--服务端实现
  2. python安装教程mac-Mac 上安装python3——手把手教程
  3. 转载:浅谈软件测试流程
  4. python网页编程测试_李亚涛:python编写友情链接检测工具
  5. Oracle TO_YMINTERVAL 函数简介
  6. 【问链财经-区块链基础知识系列】 第三十九课 EOS与ETH体系结构比较全解析
  7. HTTP一个 TCP 连接可以发多少个 HTTP 请求等面试题
  8. OSGi案例研究:模块化vert.x
  9. 关于Kernel的思考
  10. Idea中上传项目到Github
  11. elasticsearch 数据类型_ElasticSearch学习笔记
  12. 好用的ASP.NET 分页类 简单好用 支持 AJAX 自定义文字
  13. ubuntu服务器系统卸载重装,双系统卸载和安装-及ubuntu配置
  14. R语言建立Cox回归模型(包含所有协变量)比较不同治疗方法生存率的差异、predict函数对cox模型进行新数据的预测、计算不同样本的风险比HR(hazard ratio)
  15. 5W无线充发射IC芯片方案XPM7105、XPM7305 无线充SOC芯片
  16. Java字节序与大小端转换_什么时候要进行大小端字节序的转换? | 学步园
  17. 获取微信小程序的APPID及任意一个页面的路径信息
  18. 海拥,一枚热爱分享技术与快乐的博主
  19. 求符合给定条件的整数集(做题)
  20. 我测得嗷嗷完美的一个局

热门文章

  1. informix报错244_informix锁
  2. 如何将Mindjet的宏放到自定义功能区
  3. linux shell编程面试题 字符串截取排序 当前连接的ip地址
  4. 头条抖音后端技术3面,万达保安“苦修Java
  5. 2022淘宝中秋营销攻略,请查收!
  6. 笔记本上安装ubuntu系统
  7. i5 10400f配什么显卡
  8. 学习笔记|latency 和 delay 的使用区别
  9. iOS开发之网络编程SocKet
  10. bindgetuserinfo=onGotUserInfo and @getuserinfo=onGotUserInfo