import smtplib
import traceback
from email.mime.text import MIMEText
from config.config import *                                     #config.config为配置文件,文件内容有smtp_host ,smtp_from_email ,smtp_pwd ,smtp_port 几个参数

class EmailSender(object):
  def __init__(self):
    self.smtp_host=smtp_host                                     #发送邮件的smtp服务器(QQ邮箱:"smtp.qq.com",163邮箱:"smtp.163.com")
    self.smtp_from_email=smtp_from_email               #邮件发送者的邮箱
    self.smtp_pwd=smtp_pwd                                     #邮件发送者的邮箱的授权码
    self.smtp_port=smtp_port                                      #smtp邮箱的端口,默认是465

  def send_email(self,to_email_list,subject,body):
    '''
    发送邮件
    param to_email_list: 收件人邮箱列表,格式["123@qq.com","123@163.com"]
    param subject: 邮件主题,格式:"邮件主题"
    param body: 邮件内容, 格式:"邮件所说的内容"
    '''
    msg=MIMEText(body,'plain','utf-8')        #把内容转换成指定格式;邮箱内容,格式,编码
    msg["From"]=self.smtp_from_email       #发件人
    msg["To"]=",".join(to_email_list)          #收件人列表,转换成string类型,使用逗号隔开
    msg["Subject"]=subject              #邮件标题
    try:
      SmtpSslClient=smtplib.SMTP_SSL(self.smtp_host,self.smtp_port)        #实例化一个SMTP_SSL对象
      Loginer=SmtpSslClient.login(self.smtp_from_email,self.smtp_pwd)        #登录smtp服务器
      print("登录结果:Loginer=",Loginer) #loginRes = (235, b'Authentication successful')
      if Loginer[0]==235:
        print("登录成功,code=",Loginer[0])
        SmtpSslClient.sendmail(self.smtp_from_email,to_email_list,msg.as_string())      #发件人,收件人列表,邮件内容
        print("mail has been send successfully,message:",msg.as_string())
        SmtpSslClient.quit()                          #退出邮箱
      else:
        print("邮件登录失败,发送失败。code=",Loginer[0],"message=",msg.as_string())
    except Exception as e:
      traceback.print_exc()        #打印堆栈报错信息
      print("邮件发送失败,报错信息:",e)

if __name__=="__main__":
  senders=EmailSender()
  senders.send_email(["123456@qq.com","123456@163.com"],"测试邮件发送的标题","这是一个测试邮件发送的内容")

参考博客:https://blog.csdn.net/qq_27648991/article/details/82898775

python 发送无附件邮件的更多相关文章

  1. python 发送带附件的邮件

    特别注意的地方:filespart.add_header("Content-Disposition","attachment",filename=file_na ...

  2. ORACLE发送带附件邮件的二三事之一

    在oracle使用过程中,我们可以通过pl/sql生成数据文件,也可以通过spool on spool off生成,但某些环境下,我们需要通过存储过程处理数据,数据处理完,需要自动生成数据文件,手工导 ...

  3. Python发送带附件的邮件

    看别人的博客就不要在往别人的邮箱里发东西了行不行, 有点素质可以吗!!! 写出来分享还不知道珍惜!!!!! #-*-encoding:utf-8 -*- import os import smtpli ...

  4. 使用python发送简单的邮件

    from:http://blog.csdn.net/zhaoweikid/article/details/125898 前些时间,论坛上有人讨论怎么用python发送需要认证的邮件,我在我的FreeB ...

  5. Spring发送带附件邮件

    下面是一个例子使用Spring通过Gmail SMTP服务器来发送电子邮件附件.为了包含附件的电子邮件,你必须使用 Spring的JavaMailSender及MimeMessage 来代替 Mail ...

  6. python 发送带附件的 邮件

    from email.MIMETextimportMIMETextfrom email.MIMEMultipartimportMIMEMultipartimport smtplib mail_host ...

  7. 【python】使用python发送文本内容邮件

    下面提供了一个使用python做的发送文本内容的邮件代码,能够在邮件内容中设置文字颜色,大小,换行等功能. #auther by zls #_*_coding:utf-8_*_ import sys ...

  8. 使用python发送和接收邮件

    关于电子邮件 大学之前,基本不用邮箱,所以基本感觉不到它的存在,也不知道有什么用:然而大学之后,随着认识的人越来越多,知识越来越广泛,邮箱已然成为很重要的通讯工具,大学一些课程作业需要有邮箱发给老师, ...

  9. 利用spring-mail模块发送带附件邮件dome

    本例为maven项目,直接撸代码吧. pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi ...

随机推荐

  1. dos命令大全 黑客必知的DOS命令集合

    dos命令大全 黑客必知的DOS命令集合 一般来说dos命令都是在dos程序中进行的,如果电脑中安装有dos程序可以从开机选项中选择进入,在windows 系统中我们还可以从开始运行中输入cmd命令进 ...

  2. service_names配置不正确,导致dg创建失败

    service_names配置不正确,导致dg创建失败 伙伴发来消息,创建dg后,主备一直无法进行日志同步. 以下是查看过程 备库的alert日志: 2018-11-13T17:47:36.23129 ...

  3. Unity应用架构设计(4)——设计可复用的SubView和SubViewModel(Part 2)

    在我们设计和开发应用程序时,经常要用到控件.比如开发一个客户端WinForm应用程序时,微软就为我们提供了若干控件,这些控件为我们提供了可被定制的属性和事件.属性可以更改它的外观,比如背景色,标题等, ...

  4. MySQL利用mysqldump在线修复或新增从库

    如果数据库的数据量不是很大,可以利用mysqldump导出备份修复从库故障或新增从库实例 主库IP:192.168.1.1从库IP:192.168.1.2 1.主库服务器导出备份:db_name=`m ...

  5. Oracle null判断并替换空值

      可用 NVL(), IFNULL() ,COALESCE(),DECODE() 函数 1.NVL() 从两个表达式返回一个非 null 值.语法NVL(eExpression1, eExpress ...

  6. 【OCR技术系列之五】自然场景文本检测技术综述(CTPN, SegLink, EAST)

    文字识别分为两个具体步骤:文字的检测和文字的识别,两者缺一不可,尤其是文字检测,是识别的前提条件,若文字都找不到,那何谈文字识别.今天我们首先来谈一下当今流行的文字检测技术有哪些. 文本检测不是一件简 ...

  7. 【转载】Elasticsearch 5.x 字段折叠的使用,广度搜索

    https://elasticsearch.cn/article/132 备注,分组字段只能是 keyword或num类型,不能是text类型 在 Elasticsearch 5.x 有一个字段折叠( ...

  8. Oracle分析函数-统计(sum、avg、max、min)

    很多需求中都涉及到统计:均值.累计.范围均值.相邻记录比较等.这些操作会统计多次,或有明确的统计范围,或返回的记录统计的数据集不同... 根据场景不同可分为如下几类: 1. 全统计 2. 滚动统计 3 ...

  9. [Z] 从Uncaught SyntaxError: Unexpected token ")" 问题看javascript:void的作用

    https://blog.csdn.net/hongweigg/article/details/78094338 问题    在前端编程中,突然出现Uncaught SyntaxError: Unex ...

  10. 01Spark的TopN问题

    和hadoop的目的一样,给你数据,然后取TopN.数据如下: 取出数据在排名前十的数据. 代码如下: package com.test.book; import java.util.ArrayLis ...