返回顶部
首页 > 资讯 > 后端开发 > Python >Python3邮件发送简易版
  • 149
分享到

Python3邮件发送简易版

邮件发送简易版 2023-01-31 08:01:28 149人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

简介 SMTP是Internet邮件传输的标准(wiki)。python提供了内置的对SMTP支持的模块,其中,email负责构造邮件,smtplib负责邮件发送。以下代码实现了简单的纯文本邮件发送,可以发送多人,抄送多人。   代码实现

简介

SMTP是Internet邮件传输的标准(wiki)。python提供了内置的对SMTP支持的模块,其中,email负责构造邮件,smtplib负责邮件发送。
以下代码实现了简单的纯文本邮件发送,可以发送多人,抄送多人。
  

代码实现

import smtplib
from email.mime.text import MIMEText
from email.header import Header

global smtplibobj

def init(host,port,user,passWord):
    global smtplibobj
    smtplibobj = smtplib.SMTP_SSL(host=host,port=port)
    smtplibobj.set_debuglevel(1)
    smtplibobj.ehlo()
    smtplibobj.login(user=user,password=password)

def quit():
    global smtplibobj
    smtplibobj.quit()

def sendmail(host,port,user,password,from_addr,to_addr,cc_addr,msg):
    global smtplibobj
    init(host=host,port=port,user=user,password=password)
    try:
        smtplibobj.sendmail(from_addr=from_addr, to_addrs=to_addr.split(",") + cc_addr.split(","), msg=msg)
        print("邮件发送成功!")
    except smtplib.SMTPException:
        print("Error:邮件发送失败!")
    quit()

def setcontext(from_addr,to_addr,cc_addr,subject,context):
    msg = MIMEText(context, "plain", "utf-8")
    msg['From'] = Header(from_addr, "utf-8")
    msg['To'] = Header(to_addr, "utf-8")
    msg['Subject'] = Header(subject, "utf-8")
    msg['Cc'] = Header(cc_addr,"utf-8")
   # print(msg)
    return msg.as_string()

if __name__ == '__main__':
    host = "xx.xx.xx"
    port =  xx
    user = "xxx"
    password = "xxx"
    from_addr = "xxx"
    to_addr = "xxx"
    cc_addr = "xxx"
    msg = setcontext(from_addr=from_addr,to_addr=to_addr,cc_addr=cc_addr,subject="Test",context="忽略此邮件...")
    sendmail(host=host,port=port,user=user,password=password,from_addr=from_addr,to_addr=to_addr,cc_addr=cc_addr,msg=msg)

  

说明

  1. smtplibobj.set_debuglevel(1) 设置后可以打印出和SMTP服务器之间交互的所有信息。
  2. SMTP发送邮件,简单说来,步骤是:建立连接-登录-发送邮件-断开连接。
  3. 如果是ssl,则用 smtplib.SMTP_SSL(host=host,port=port) (即上文代码中的方式)创建对象;若使用tls,则用smtplib.SMTP(host=host,port=port)的方式创建对象,并在smtplibobj.ehlo()后增加smtplibobj.starttls()开启加密传输。是否支持tls,可以从eclo的返回值来确认。如下图:
    Python3邮件发送简易版
      

其他

  1. 一开始将文件名命名为email.py,运行的时候报错ModuleNotFoundError: No module named 'email.mime'; 'email' is not a package,将文件名改成emailUtil.py(或其他)就可以了。主要是因为和Python内置的email模块命名冲突了,结果无法识别。
  2. 关于ssl还是tls,在说明中第3点有提到,个人觉得更好一点的写法,是在sendmail方法中增加if判断,但这个端口号好像不太好确定,或者可以再定义一个方法sendmailByTls()类似这样的。
  3. 登录的邮箱账号和密码是不建议写到代码里面的,可以写成input的,也可以写成配置文件,以读取配置的方式获得,但不限于账号密码,host、端口等都可以写成配置,也是比较推荐的做法。
  4. 看到一个前辈写的很详细,贴个链接参考下:Http://blog.csdn.net/bravezhe/article/details/7659198

--结束END--

本文标题: Python3邮件发送简易版

本文链接: https://lsjlt.com/news/192660.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python3邮件发送简易版
    简介 SMTP是Internet邮件传输的标准(wiki)。Python提供了内置的对SMTP支持的模块,其中,email负责构造邮件,smtplib负责邮件发送。以下代码实现了简单的纯文本邮件发送,可以发送多人,抄送多人。   代码实现 ...
    99+
    2023-01-31
    邮件发送 简易版
  • javaweb实现简易邮件发送
    本文实例为大家分享了javaweb实现简易邮件发送的具体代码,供大家参考,具体内容如下 1.邮件发送 2.jar包的支持 activation-1.1.1.jar mail-1.4...
    99+
    2024-04-02
  • python3发送邮件
    #163邮箱发送邮件import smtplibfrom email.mime.text import MIMETextfrom email.utils import formataddr my_sender = 'XXXXX@163.c...
    99+
    2023-01-31
    发送邮件
  • python3之发送邮件
    #/usr/bin/env python3 # encoding: utf-8 #@author: Lejie #@software: PyCharm Community Edition #@file: learn_smtp.py #@ti...
    99+
    2023-01-31
    发送邮件
  • javaweb怎么实现简易邮件发送
    本文小编为大家详细介绍“javaweb怎么实现简易邮件发送”,内容详细,步骤清晰,细节处理妥当,希望这篇“javaweb怎么实现简易邮件发送”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.邮件发送2.jar包的...
    99+
    2023-07-02
  • Python3:用QQ邮箱发送邮件
    1.     环境操作系统 Win10 IDE PyCharm Community 2018.1 Python 3.5   2.     设置QQ邮箱    QQ邮箱是SSL认证的邮箱系统,要用QQ邮箱发送邮件,需要开启POP3/ SM...
    99+
    2023-01-31
    发送邮件 邮箱 QQ
  • python3 发送电子邮件
    使用python3发送电子邮件,我之前在网上找了好几篇文章不论是都不行,最后在网上找到这篇文章了!首先在163邮箱开启授权码记住这个授权密码,我们在python代码里面用的就是这个密码不然会出现这个报错#!/usr/bin/env pyth...
    99+
    2023-01-31
    发送电子邮件
  • python3使用smtplib发送邮件,带xlsx附件
    最近在做一个统计报表,需要发送邮件,并带附件的。在之前的文章中https://www.cnblogs.com/xiao987334176/p/10022026.html已经实现了发送邮件,但是没有实现发送附件功能。 send_ma...
    99+
    2023-01-31
    发送邮件 附件 smtplib
  • JavaMail实现简单邮件发送
    本文实例为大家分享了JavaMail实现简单邮件发送的具体代码,供大家参考,具体内容如下 简单邮件 即纯文本邮件,没有除文字以外的其他所有文件。 传输协议 SMTP协议 全称为 Si...
    99+
    2022-11-13
    JavaMail 邮件发送
  • PHP Mail 用法指南:简单易懂的邮件发送教程
    PHP是一种广泛应用于开发Web应用程序的脚本语言,它提供了许多用来处理邮件发送的功能。本文将向大家介绍PHP中如何使用邮件发送功能,同时提供具体的代码示例。 一、准备工作 在使用PH...
    99+
    2024-04-02
  • restymail的简单发送邮件方法
    目录1.配置MailPlugin插件2.发送普通的文本邮件3.发送html邮件4.发送附件邮件1. 配置MailPlugin插件 public void configPlugin(P...
    99+
    2024-04-02
  • Win7怎么使用网易邮箱发送密码邮件
    这篇文章给大家介绍Win7怎么使用网易邮箱发送密码邮件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。邮箱里存储着不少机密与隐私,同时,它也是互联网中容易被黑客入侵的一个路径,极易被盗。因此,我们不仅要注意邮箱密码的保护...
    99+
    2023-06-28
  • python发送、抄送邮件
    python发送抄送邮件 sendemial.py #!/usr/bin/python # -*- coding: UTF-8 -*- import smtplib from email.mime.text import MIMETe...
    99+
    2023-01-31
    邮件 python
  • Python 发送SMTP邮件的简单教程
    目录一、两个模块二、SMTP端口三、四大步骤1、构造邮件内容2、连接邮件服务器3、登陆邮件服务器4、发送邮件四、常用场景1、纯文本邮件2、发送html文本3、发送附件一、两个模块 Python使用SMTP发送邮件的...
    99+
    2022-06-02
    python 发送邮件 python SMTP
  • JavaWeb实现简单用户发送邮件
    在实现用户发送邮件之前,我们先对电子邮箱的基本概念做一些了解。 一、电子邮件 1. 邮件服务器 1.要在 Internet 上提供电子邮件功能,必须有专门的电子邮件服务器。 例如:现...
    99+
    2024-04-02
  • java实现简单发送邮件功能
    本文实例为大家分享了java实现简单发送邮件的具体代码,供大家参考,具体内容如下 添加依赖 <!--发送邮件API-->     <!-- https://mvnr...
    99+
    2024-04-02
  • Java实现简单邮件发送功能
    本文实例为大家分享了Java实现简单邮件发送的具体代码,供大家参考,具体内容如下 需要的jar包: activation-1.1.1.jarmail-1.4.7.jar QQ邮箱设置...
    99+
    2024-04-02
  • 基于JavaMail实现简单邮件发送
    本文实例为大家分享了JavaMail实现简单邮件发送的具体代码,供大家参考,具体内容如下 1.引入依赖 <dependency>     <groupId>o...
    99+
    2022-11-13
    JavaMail 邮件发送
  • JavaEmail邮件发送简单实现介绍
    目录一、邮件协议1.POP32.SMTP3.IMAP4.IMAP和POP3有什么区别二、发送邮件三、总结一、邮件协议 MTA 和 MDA 这样的服务器软件通常是现成的,我们通常不会关...
    99+
    2022-11-13
    Java Email Java 邮件发送
  • Oracle邮件发送
    10G之前,如果要从oracle中发送email,必须借助oracle的utl_smtp和utl_tcp功能包,自己包装一个email发送程序,然后使用。自从10G后,这个流程将变得非常简单。因为ora...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作