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. 行为链分析zipkin

    行为链分析zipkin - 跑zipkin python例子 https://github.com/openzipkin/pyramid_zipkin-example # get the latest ...

  2. 如何免费的将本地Web服务映射到外网

    链接地址:https://hongmaju.github.io/2018/05/13/ngrok%E5%B0%86%E6%9C%AC%E5%9C%B0Web%E6%9C%8D%E5%8A%A1%E6% ...

  3. IOS逆向-砸壳笔记

    本人ios10.3.1 iphone6越狱机.方案三个. 方案一.dumpdecrypted.dylib 1. ssh到越狱机上,看WeChat可执行文件在哪. # ps aux|grep WeCha ...

  4. Android中APK签名工具之jarsigner和apksigner详解

    一.工具介绍 jarsigner是JDK提供的针对jar包签名的通用工具, 位于JDK/bin/jarsigner.exe apksigner是Google官方提供的针对Android apk签名及验 ...

  5. VBA二次学习笔记(1)——文件操作

    说明(2018-9-1 11:20:46): 1. 上班三个月了,累的一逼,真的是钱少事多离家远,每天早上六点起,晚上八点回.哎,少壮不努力啊! 2. 三个月没写博客了,上一篇已经是5.29的了,真的 ...

  6. find ctime 加减n时间范围

    看下atime的时间解释:-atime n File was last accessed n*24 hours ago. When find figures out how many 24-hour ...

  7. Transaction rolled back because it has been marked as rollback-only分析解决方法

    1. Transaction rolled back because it has been marked as rollback-only事务已回滚,因为它被标记成了只回滚<prop key= ...

  8. MySQL-监控告警系统

    开源地址: https://github.com/ycg/mysql_web QQ: 779647966 Email: ycg166911@163.com 利用python的flask进行后台开发,前 ...

  9. One example to understand SemFix: Program Repair via Semantic Analysis

    One example to understand SemFix: Program Repair via Semantic Analysis Basic Information Authors: Ho ...

  10. IE8下动态生成option无法设置文本内容

    问题: 1.在IE8下,JS动态添加 option 的时候,value 有值,但是文本内容添加不上 例:<option value="北京"></option&g ...