iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python 使用SMTP发送邮件的代码小结
  • 712
分享到

Python 使用SMTP发送邮件的代码小结

小结发送邮件代码 2022-06-04 18:06:34 712人浏览 安东尼

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

摘要

SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。 python的smtplib提供了一种很方

SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。
python的smtplib提供了一种很方便的途径发送电子邮件。它对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 Person <from@fromdomain.com>
To: To Person <to@todomain.com>
Subject: 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","<a href='Http://www.cnblogs.com/xiaowuyi'>小五义</a>"): 
    print("发送成功")
  else: 
    print("发送失败")

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


#!/usr/bin/python

import smtplib

message = """From: From Person <from@fromdomain.com>
To: To Person <to@todomain.com>
MIME-Version: 1.0
Content-type: text/html
Subject: SMTP HTML e-mail test

This is an e-mail message to be sent in HTML fORMat

<b>This is HTML message.</b>
<h1>This is headline.</h1>
"""

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 MIMEText
from email.mime.multipart import MIMEMultipart
import smtplib

#创建一个带附件的实例
msg = MIMEMultipart()

#构造附件1
att1 = 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)

#构造附件2
att2 = 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 smtplib
import 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 Person <me@fromdomain.net>
To: To Person <amrood.admin@gmail.com>
Subject: Sending Attachement
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=%s
--%s
""" % (marker, marker)

# 定义消息动作
part2 = """Content-Type: text/plain
Content-Transfer-Encoding:8bit

%s
--%s
""" % (body,marker)

# 定义附近部分
part3 = """Content-Type: multipart/mixed; name="%s"
Content-Transfer-Encoding:base64
Content-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")

如果感兴趣的朋友可以继续参考下面的文章。

--结束END--

本文标题: Python 使用SMTP发送邮件的代码小结

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

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

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

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

下载Word文档
猜你喜欢
  • 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发送邮件
    本篇文章为大家展示了Python中如何使用SMTP发送邮件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Python创建 SMTP 对象语法import smtplib smtp...
    99+
    2023-06-02
  • python基于SMTP发送QQ邮件
    python基于SMTP发送QQ邮件,供大家参考,具体内容如下 第一步: 1.打开qq邮箱,开启smtp服务 2.验证密保 3.获取授权码 python代码里面使用 在Pyth...
    99+
    2024-04-02
  • Python基于SMTP发送邮件的方法
    目录构建消息对象发送邮件要点在很多时候,使用 Python 发送邮件可能没有办法使用邮件服务器提供的 API,因为不是所有的邮件服务商都会提供 API 供客户使用的。 通常使用邮件 ...
    99+
    2024-04-02
  • C#实现SMTP服务发送邮件的示例代码
    目录实践过程效果代码实践过程 效果 代码 public partial class frmSend : Form { public frmSend() { ...
    99+
    2022-12-27
    C# SMTP发送邮件 C# 发送邮件 C# SMTP
  • phpmailer用smtp发送邮件的过程
    这篇文章主要介绍“phpmailer用smtp发送邮件的过程”,在日常操作中,相信很多人在phpmailer用smtp发送邮件的过程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2024-04-02
  • 怎么用python代码发送邮件
    使用Python发送邮件,可以使用smtplib库。下面是一个示例代码:```pythonimport smtplibfrom em...
    99+
    2023-09-07
    python
  • 怎么在Python项目中利用SMTP发送邮件
    这期内容当中小编将会给大家带来有关怎么在Python项目中利用SMTP发送邮件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。通常使用邮件 API 的邮件发送服务都需要额外的收费。因此我们再邮件测试发送的时...
    99+
    2023-06-14
  • PHP使用简单邮件传输协议(SMTP)发送邮件的方法
    随着互联网的发展,邮件已经成为了人们日常交流的重要方式之一。而对于一些网站开发者来说,在网站中发送邮件也显得尤为关键。PHP作为一种服务器端脚本语言,自然也需要提供一种发送邮件的方式。本文就将介绍PHP使用简单邮件传输协议(SMTP)发送邮...
    99+
    2023-05-22
    PHP 邮件发送 SMTP
  • python之三行代码发送邮件
    (1)首先进入cmd,输入pip install yagmail (2)思路:1 、连接服务器:yagmail.SMTP(邮箱账号,邮箱密码,邮箱服务器地址,邮箱服务器端口)                     2 、准备正文内容:c...
    99+
    2023-01-30
    发送邮件 代码 python
  • PHP使用SMTP协议发送邮件的完整流程
    随着互联网的发展,电子邮件已经成为人们日常沟通的重要手段之一。在Web应用程序中,发送邮件已经成为了必须的功能之一,而且随着Web应用的发展,邮件发送的方式也得到了很大的改进。其中,基于SMTP协议的邮件发送方式,成为了Web应用中最常用的...
    99+
    2023-05-23
    PHP 邮件发送 SMTP
  • PHP使用SMTP和PEAR库发送邮件的优化技巧
    随着互联网的不断发展,邮件已经成为了人们日常生活和工作中必不可少的一部分。那么作为一个Web开发人员,如何使用PHP发送邮件已经成为了我们必须掌握的一项技能。PHP作为一种广泛应用的服务器端编程语言,它内置的mail()函数虽然可以实现发送...
    99+
    2023-05-22
    PHP SMTP PEAR
  • PHP实现发送邮件功能代码|PHP怎么实现QQ邮件发送|Php发送邮件代码
    最近学习PHP的过程中发现了一个很实用的功能那就是发送QQ邮件,因为这个功能很常用我也是研究了半天找到一个很好的demo感兴趣的可以自己下载学习一下这个Php发送邮件代码真的很实用而且很好用 使用方法: 上传整体压缩包到服务器解压 修改se...
    99+
    2023-09-16
    php 服务器 apache
  • python 使用stmp发送邮件
    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。 python的smtplib提供了一种很方便的途径发送电子邮件。它对smtp...
    99+
    2023-01-31
    发送邮件 python stmp
  • Python 使用Gmail发送邮件
    前言:2014-05-22记录在hi baidu上,现在移过来 使用python向gmail发邮件 """ 发送邮件 1: 需要提供发送者的邮件、密码;接收者地址; 2:步骤: a:Logi...
    99+
    2023-01-31
    发送邮件 Python Gmail
  • 使用python发送html邮件
    说明:   最近一直在忙着业务迁移工作,己经有些日子没有写东西了,虽然写的很渣,还好是将功能实现了。#!/usr/bin/env python #coding:utf8   import smtplib from email.mime.te...
    99+
    2023-01-31
    邮件 python html
  • SpringBootQQ邮箱发送邮件实例代码
    目录1.获取QQ邮箱授权码2.导入邮箱发送依赖启动器3.配置文件yml添加邮件服务配置4.编写接口IMailService5.编写实现MailServiceImpl6.Control...
    99+
    2024-04-02
  • Asp.net发送邮件的两种方法小结
    在ASP.NET中,发送邮件有两种常见的方法:1. 使用SMTP客户端发送邮件:这是一种基本的方法,使用SMTP客户端来发送邮件。首...
    99+
    2023-08-11
    Asp.net
  • 使用Python第三方库发送电子邮件的示例代码
    目录1. 安装 yagmail 第三方库2. 开启 POP3、IMAP 和 SMTP 服务2.1 POP3、IMAP 和 SMTP 简介2.2 开启 POP3、IMAP、和 SMTP...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作