广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中如何使用SMTP发送邮件
  • 627
分享到

Python中如何使用SMTP发送邮件

2023-06-02 02:06:07 627人浏览 安东尼

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

摘要

本篇文章为大家展示了python中如何使用SMTP发送邮件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Python创建 SMTP 对象语法import smtplib smtp

本篇文章为大家展示了python中如何使用SMTP发送邮件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

Python创建 SMTP 对象语法

import smtplib smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )

参数说明:

host: SMTP 服务器主机。 你可以指定主机的ip地址或者域名如:w3cschool.cc,这个是可选参数。

port: 如果你提供了 host 参数, 你需要指定 SMTP 服务使用的端口号,一般情况下SMTP端口号为25。

local_hostname: 如果SMTP在你的本机上,你只需要指定服务器地址为 localhost 即可。

Python SMTP对象使用sendmail方法发送邮件,语法如下:

SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options]

参数说明:

from_addr: 邮件发送者地址。

to_addrs: 字符串列表,邮件发送地址。

msg: 发送消息

这里要注意一下第三个参数,msg是字符串,表示邮件。我们知道邮件一般由标题,发信人,收件人,邮件内容,附件等构成,发送邮件的时候,要注意msg的格式。这个格式就是smtp协议中定义的格式。

实例

以下是一个使用Python发送邮件简单的实例

#!/usr/bin/python import smtplib sender = 'from@fromdomain.com'receivers = ['to@todomain.com'] message = """From: From PersonTo: To PersonSubject: SMTP e-mail test This is a test e-mail message.""" try:   smtpObj = smtplib.SMTP('localhost')   smtpObj.sendmail(sender, receivers, message)            print "Successfully sent email"except SMTPException:   print "Error: unable to send email"

使用Python发送HTML格式的邮件

Python发送html格式的邮件与发送纯文本消息的邮件不同之处就是将MIMEText中_subtype设置为html。具体代码如下:

import smtplib  from email.mime.text import MIMEText  mailto_list=["YYY@YYY.com"] mail_host="smtp.XXX.com"  #设置服务器mail_user="XXX"    #用户名mail_pass="XXXX"   #口令 mail_postfix="XXX.com"  #发件箱的后缀   def send_mail(to_list,sub,content):  #to_list:收件人;sub:主题;content:邮件内容    me="hello"+"< "+mail_user+"@"+mail_postfix+">"   #这里的hello可以任意设置,收到信后,将按照设置显示    msg = MIMEText(content,_subtype='html',_charset='gb2312')    #创建一个实例,这里设置为html格式邮件    msg['Subject'] = sub    #设置主题    msg['From'] = me      msg['To'] = ";".join(to_list)      try:          s = smtplib.SMTP()          s.connect(mail_host)  #连接smtp服务器        s.login(mail_user,mail_pass)  #登陆服务器        s.sendmail(me, to_list, msg.as_string())  #发送邮件        s.close()          return True      except Exception, e:          print str(e)          return False  if __name__ == '__main__':      if send_mail(mailto_list,"hello","小五义"):          print "发送成功"      else:          print "发送失败"

或者你也可以在消息体中指定Content-type为text/html,如下实例:

#!/usr/bin/python import smtplib message = """From: From PersonTo: To PersonMIME-Version: 1.0Content-type: text/htmlSubject: SMTP HTML e-mail test This is an e-mail message to be sent in HTML fORMat This is HTML message.This is headline.""" try:   smtpObj = smtplib.SMTP('localhost')   smtpObj.sendmail(sender, receivers, message)            print "Successfully sent email"except SMTPException:   print "Error: unable to send email"

Python发送带附件的邮件

发送带附件的邮件,首先要创建MIMEMultipart()实例,然后构造附件,如果有多个附件,可依次构造,最后利用smtplib.smtp发送。

from email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartimport smtplib #创建一个带附件的实例msg = MIMEMultipart() #构造附件1att1 = MIMEText(open('d:123.rar', 'rb').read(), 'base64', 'gb2312')att1["Content-Type"] = 'application/octet-stream'att1["Content-Disposition"] = 'attachment; filename="123.doc"'#这里的filename可以任意写,写什么名字,邮件中显示什么名字msg.attach(att1) #构造附件2att2 = MIMEText(open('d:123.txt', 'rb').read(), 'base64', 'gb2312')att2["Content-Type"] = 'application/octet-stream'att2["Content-Disposition"] = 'attachment; filename="123.txt"'msg.attach(att2) #加邮件头msg['to'] = 'YYY@YYY.com'msg['from'] = 'XXX@XXX.com'msg['subject'] = 'hello world'#发送邮件try:    server = smtplib.SMTP()    server.connect('smtp.XXX.com')    server.login('XXX','XXXXX')#XXX为用户名,XXXXX为密码    server.sendmail(msg['from'], msg['to'],msg.as_string())    server.quit()    print '发送成功'except Exception, e:      print str(e)

以下实例指定了Content-type header 为 multipart/mixed,并发送/tmp/test.txt 文本文件:

#!/usr/bin/python import smtplibimport base64 filename = "/tmp/test.txt" # 读取文件内容并使用 base64 编码fo = open(filename, "rb")filecontent = fo.read()encodedcontent = base64.b64encode(filecontent)  # base64 sender = 'WEBmaster@tutorialpoint.com'reciever = 'amrood.admin@gmail.com' marker = "AUNIQUEMARKER" body ="""This is a test email to send an attachement."""# 定义头部信息part1 = """From: From PersonTo: To PersonSubject: Sending AttachementMIME-Version: 1.0Content-Type: multipart/mixed; boundary=%s--%s""" % (marker, marker) # 定义消息动作part2 = """Content-Type: text/plainContent-Transfer-Encoding:8bit %s--%s""" % (body,marker) # 定义附近部分part3 = """Content-Type: multipart/mixed; name="%s"Content-Transfer-Encoding:base64Content-Disposition: attachment; filename=%s %s--%s--""" %(filename, filename, encodedcontent, marker)message = part1 + part2 + part3 try:   smtpObj = smtplib.SMTP('localhost')   smtpObj.sendmail(sender, reciever, message)   print "Successfully sent email"except Exception:   print "Error: unable to send email"

上述内容就是Python中如何使用SMTP发送邮件,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网Python频道。

--结束END--

本文标题: Python中如何使用SMTP发送邮件

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python中如何使用SMTP发送邮件
    本篇文章为大家展示了Python中如何使用SMTP发送邮件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Python创建 SMTP 对象语法import smtplib smtp...
    99+
    2023-06-02
  • python SMTP邮件发送
    本例使用的时python2.7环境,python3的操作应该也是差不多的。 需要用到smtplib和email两个包。 发送文本类型的邮件 下面看个发送文本邮件的例子(使用网易163的SMTP): # -*- coding: UTF-8 ...
    99+
    2023-01-31
    邮件发送 python SMTP
  • Python中怎么使用SMTP发送邮件
    这篇“Python中怎么使用SMTP发送邮件”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python中怎么使用SMTP发送...
    99+
    2023-06-28
  • python基于SMTP发送QQ邮件
    python基于SMTP发送QQ邮件,供大家参考,具体内容如下 第一步: 1.打开qq邮箱,开启smtp服务 2.验证密保 3.获取授权码 python代码里面使用 在Pyth...
    99+
    2022-11-11
  • python实现SMTP邮件发送功能
    一直想着给框架添加邮件发送功能、所以整理下python下邮件发送功能 首先python是支持邮件的发送、内置smtp库、支持发送纯文本、HTML及添加附件的邮件。之后是邮箱、像163、qq、新浪等邮箱默认关...
    99+
    2022-06-04
    邮件发送 功能 python
  • Python 使用SMTP发送邮件的代码小结
    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。 python的smtplib提供了一种很方...
    99+
    2022-06-04
    小结 发送邮件 代码
  • Golang如何实现smtp邮件发送
    本文小编为大家详细介绍“Golang如何实现smtp邮件发送”,内容详细,步骤清晰,细节处理妥当,希望这篇“Golang如何实现smtp邮件发送”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。使用函数SendMai...
    99+
    2023-07-05
  • Python 发送SMTP邮件的简单教程
    目录一、两个模块二、SMTP端口三、四大步骤1、构造邮件内容2、连接邮件服务器3、登陆邮件服务器4、发送邮件四、常用场景1、纯文本邮件2、发送html文本3、发送附件一、两个模块 Python使用SMTP发送邮件的...
    99+
    2022-06-02
    python 发送邮件 python SMTP
  • Python基于SMTP发送邮件的方法
    目录构建消息对象发送邮件要点在很多时候,使用 Python 发送邮件可能没有办法使用邮件服务器提供的 API,因为不是所有的邮件服务商都会提供 API 供客户使用的。 通常使用邮件 ...
    99+
    2022-11-11
  • 怎么在Python项目中利用SMTP发送邮件
    这期内容当中小编将会给大家带来有关怎么在Python项目中利用SMTP发送邮件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。通常使用邮件 API 的邮件发送服务都需要额外的收费。因此我们再邮件测试发送的时...
    99+
    2023-06-14
  • phpmailer用smtp发送邮件的过程
    这篇文章主要介绍“phpmailer用smtp发送邮件的过程”,在日常操作中,相信很多人在phpmailer用smtp发送邮件的过程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2022-10-19
  • Python实现SMTP发送邮件详细教程
    简介 Python发送邮件的教程本人在网站搜索的时候搜索出来了一大堆,但是都是说了一大堆原理然后就推出了实现代码,我测试用给出的代码进行发送邮件时都不成功,后面找了很久才找到原因,这都是没有一个详细的环境调...
    99+
    2022-06-04
    发送邮件 教程 详细
  • PHP使用简单邮件传输协议(SMTP)发送邮件的方法
    随着互联网的发展,邮件已经成为了人们日常交流的重要方式之一。而对于一些网站开发者来说,在网站中发送邮件也显得尤为关键。PHP作为一种服务器端脚本语言,自然也需要提供一种发送邮件的方式。本文就将介绍PHP使用简单邮件传输协议(SMTP)发送邮...
    99+
    2023-05-22
    PHP 邮件发送 SMTP
  • PHP使用SMTP协议发送邮件的完整流程
    随着互联网的发展,电子邮件已经成为人们日常沟通的重要手段之一。在Web应用程序中,发送邮件已经成为了必须的功能之一,而且随着Web应用的发展,邮件发送的方式也得到了很大的改进。其中,基于SMTP协议的邮件发送方式,成为了Web应用中最常用的...
    99+
    2023-05-23
    PHP 邮件发送 SMTP
  • 使用python发送html邮件
    说明:   最近一直在忙着业务迁移工作,己经有些日子没有写东西了,虽然写的很渣,还好是将功能实现了。#!/usr/bin/env python #coding:utf8   import smtplib from email.mime.te...
    99+
    2023-01-31
    邮件 python html
  • Python 使用Gmail发送邮件
    前言:2014-05-22记录在hi baidu上,现在移过来 使用python向gmail发邮件 """ 发送邮件 1: 需要提供发送者的邮件、密码;接收者地址; 2:步骤: a:Logi...
    99+
    2023-01-31
    发送邮件 Python Gmail
  • python 使用stmp发送邮件
    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。 python的smtplib提供了一种很方便的途径发送电子邮件。它对smtp...
    99+
    2023-01-31
    发送邮件 python stmp
  • PHP使用SMTP和PEAR库发送邮件的优化技巧
    随着互联网的不断发展,邮件已经成为了人们日常生活和工作中必不可少的一部分。那么作为一个Web开发人员,如何使用PHP发送邮件已经成为了我们必须掌握的一项技能。PHP作为一种广泛应用的服务器端编程语言,它内置的mail()函数虽然可以实现发送...
    99+
    2023-05-22
    PHP SMTP PEAR
  • 利用爬虫、SMTP和树莓派3B发送邮件(
    -----------------------------------------学无止境----------------------------------------- 前言:大家好,欢迎来到誉雪飞舞的博客园,我的每篇文章都是自己用心...
    99+
    2023-01-31
    爬虫 发送邮件 SMTP
  • 阿里云使用SMTP服务器如何轻松发送电子邮件
    本文将详细解释如何在阿里云上使用SMTP服务器来发送电子邮件。阿里云是一个强大的云计算平台,提供了各种各样的服务,包括SMTP服务器。SMTP(SimpleMail TransferProtocol)是一种广泛使用的电子邮件传输协议,可以帮...
    99+
    2023-11-14
    阿里 发送电子邮件 轻松
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作