Python发送email的3种方法

   这篇文章主要介绍了Python发送email的3种方法,本文讲解了使用登录邮件服务器方法、调用sendmail命令、使用smtp服务来发送三种方法,需要的朋友可以参考下

  python发送email还是比较简单的,可以通过登录邮件服务来发送,linux下也可以使用调用sendmail命令来发送,还可以使用本地或者是远程的smtp服务来发送邮件,不管是单个,群发,还是抄送都比较容易实现。

  先把几个最简单的发送邮件方式记录下,像html邮件,附件等也是支持的,需要时查文档即可

  1、登录邮件服务

   代码如下:

  #!/usr/bin/env python

  # -*- coding: utf-8 -*-

  #python2.7x

  #send_simple_email_by_account.py @2014-07-30

  #author: orangleliu

  '''''

  使用python写邮件 simple

  使用126 的邮箱服务

  '''

  import smtplib

  from email.mime.text import MIMEText

  SMTPserver = 'smtp.126.com'

  sender = 'liuzhizhi123@126.com'

  password = "xxxx"

  message = 'I send a message by Python. 你好'

  msg = MIMEText(message)

  msg['Subject'] = 'Test Email by Python'

  msg['From'] = sender

  msg['To'] = destination

  mailserver = smtplib.SMTP(SMTPserver, 25)

  mailserver.login(sender, password)

  mailserver.sendmail(sender, [sender], msg.as_string())

  mailserver.quit()

  print 'send email success'

  2、调用sendmail命令 (linux)

   代码如下:

  # -*- coding: utf-8 -*-

  #python2.7x

  #send_email_by_.py

  #author: orangleliu

  #date: 2014-08-15

  '''''

  用的是sendmail命令的方式

  这个时候邮件还不定可以发出来,hostname配置可能需要更改

  '''

  from email.mime.text import MIMEText

  from subprocess import Popen, PIPE

  def get_sh_res():

  p = Popen(['/Application/2.0/nirvana/logs/log.sh'], stdout=PIPE)

  return str(p.communicate()[0])

  def mail_send(sender, recevier):

  print "get email info..."

  msg = MIMEText(get_sh_res())

  msg["From"] = sender

  msg["To"] = recevier

  msg["Subject"] = "Yestoday interface log results"

  p = Popen(["/usr/sbin/sendmail", "-t"], stdin=PIPE)

  res = p.communicate(msg.as_string())

  print 'mail sended ...'

  if __name__ == "__main__":

  s = "957748332@qq.com"

  r = "zhizhi.liu@chinacache.com"

  mail_send(s, r)

  3、使用smtp服务来发送(本地或者是远程服务器)

  代码如下:

  #!/usr/bin/env python

  # -*- coding: utf-8 -*-

  #python2.7x

  #send_email_by_smtp.py

  #author: orangleliu

  #date: 2014-08-15

  '''''

  linux 下使用本地的smtp服务来发送邮件

  前提要开启smtp服务,检查的方法

  #ps -ef|grep sendmail

  #telnet localhost 25

  这个时候邮件还不定可以发出来,hostname配置可能需要更改

  '''

  import smtplib

  from email.mime.text import MIMEText

  from subprocess import Popen, PIPE

  def get_sh_res():

  p = Popen(['/Application/2.0/nirvana/logs/log.sh'], stdout=PIPE)

  return str(p.communicate()[0])

  def mail_send(sender, recevier):

  msg = MIMEText(get_sh_res())

  msg["From"] = sender

  msg["To"] = recevier

  msg["Subject"] = "Yestoday interface log results"

  s = smtplib.SMTP('localhost')

  s.sendmail(sender, [recevier], msg.as_string())

  s.quit()

  print 'send mail finished...'

  if __name__ == "__main__":

  s = "zhizhi.liu@chinacache.com"

  r = s

  mail_send(s, r)

时间: 2025-01-02 16:30:18

Python发送email的3种方法的相关文章

Python发送Email方法实例_python

本文以实例形式展示了Python发送Email功能的实现方法,有不错的实用价值的技巧,且功能较为完善.具体实现方法如下: 主要功能代码如下: #/usr/bin/env python # -*- encoding=utf-8 -*- import base64 import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText class CCSendMail: de

Python实现发送email的几种常用方法_python

学过Python的人都知道,实用Python实现发送email的功能还是比较简单的,可以通过登录邮件服务来发送,linux下也可以使用调用sendmail命令来发送,还可以使用本地或者是远程的smtp服务来发送邮件,不管是单个,群发,还是抄送都比较容易实现. 本文就把几个最简单的发送邮件方式记录下来,像html邮件,附件等也是支持的,读者在需要时可以参考查询一下.具体方法如下: 1.登录邮件服务 具体代码如下: #!/usr/bin/env python # -*- coding: utf-8

Python文件读取的3种方法及路径转义

  这篇文章主要介绍了Python文件读取的3种方法及路径转义,本文分别给出读取文件的代码实例,最后讲解了路径转义的相关知识.小技巧,需要的朋友可以参考下 1.文件的读取和显示 方法1: 代码如下: f=open(r'G:2.txt') print f.read() f.close() 方法2: 代码如下: try: t=open(r'G:2.txt') print t.read() finally: if t: t.close() 方法3: 代码如下: with open(r'g:2.txt'

Python合并字符串的3种方法

  这篇文章主要介绍了Python合并字符串的3种方法,本文讲解了使用+=操作符.使用%操作符.使用String的' '.join()方法3种方法,需要的朋友可以参考下 目的 将一些小的字符串合并成一个大字符串,更多考虑的是性能 方法 常见的方法有以下几种: 1.使用+=操作符 代码如下: BigString=small1+small2+small3+...+smalln 例如有一个片段pieces=['Today','is','really','a','good','day'],我们希望把它联

调试Python程序代码的几种方法总结

  这篇文章主要介绍了调试Python程序代码的几种方法总结,文中代码基于Python2.x版本,需要的朋友可以参考下 程序能一次写完并正常运行的概率很小,基本不超过1%.总会有各种各样的bug需要修正.有的bug很简单,看看错误信息就知道,有的bug很复杂,我们需要知道出错时,哪些变量的值是正确的,哪些变量的值是错误的,因此,需要一整套调试程序的手段来修复bug. 第一种方法简单直接粗暴有效,就是用print把可能有问题的变量打印出来看看: ? 1 2 3 4 5 6 7 8 9 10 # e

python字符串替换的2种方法_python

python 字符串替换 是python 操作字符串的时候经常会碰到的问题,这里简单介绍下字符串替换方法. python 字符串替换可以用2种方法实现: 1是用字符串本身的方法. 2用正则来替换字符串 下面用个例子来实验下: a = 'hello word' 把a字符串里的word替换为python 1.用字符串本身的replace方法 复制代码 代码如下: a.replace('word','python') 输出的结果是hello python 2.用正则表达式来完成替换: 复制代码 代码如

ASP程序发送信件的几种方法比较

比较|程序 一.Jmail3以及以前的版本使用jmail.smtpmail发信,具体代码如下: <%Set jmail = Server.CreateObject("JMAIL.SMTPMail") '创建一个JMAIL对象jmail.silent = true 'JMAIL不会抛出例外错误,返回的值为FALSE跟TRUEjmail.logging = true '启用使用日志jmail.Charset = "GB2312" '邮件文字的代码为简体中文jmai

Python实时监控文件3种方法

在业务稳定性要求比较高的情况下,运维为能及时发现问题,有时需要对应用程序的日志进行实时分析,当符合某个条件时就立刻报警,而不是被动等待出问题后去解决,比如要监控nginx的$request_time和$upstream_response_time时间,分析出最耗时的请求,然后去改进代码,这时就要对日志进行实时分析了,发现时间长的语句就要报警出来,提醒开发人员要关注,当然这是其中一个应用场景,通过这种监控方式还可以应用到任何需要判断或分析文件的地方,所以今天我们就来看看如何用python实现实时监

Python遍历目录的4种方法实例介绍_python

1.os.popen运行shell列表命令 复制代码 代码如下: def traverseDirByShell(path):     for f in os.popen('ls ' + path):         print f.strip() 2.利用glob模块 glob.glob(path)返回带目录的文件名.通配符和shell相似.path不能包含shell变量. 复制代码 代码如下: def traverseDirByGlob(path):     path = os.path.ex