我的编程空间,编程开发者的网络收藏夹
学习永远不晚

使用python发送html邮件

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

使用python发送html邮件

说明:

   最近一直在忙着业务迁移工作,己经有些日子没有写东西了,虽然写的很渣,还好是将功能实现了。

#!/usr/bin/env python
#coding:utf8
 
import smtplib
from email.mime.text import MIMEText
import sys
reload(sys)
sys.setdefaultencoding('utf-8') #重新设置字符集,默认是ascii
mail_host="xxxxx"   #邮件主机
mail_user="xxxxxxx"     #发送邮件的用户名
mail_pass="xxxx"        #发邮件的密码 
 
class Send_notice_mail(object):
  def __init__(self,migrate_date,records): #需要两个数据  
     self.migrate_date=migrate_date # migrate_date:时间 
     self.record=records      #源记录中包含邮箱
     for records in self.record: 
       self.mail_key={}
       self.mail_key['Email']=records['Email'].strip().lower()# 将邮箱名称改成小写
       records.update(self.mail_key) #更新字典
     self.__Read_Templats() #读取模板
  def __Read_Templats(self):
    InFile = open("qianyi_before.html","rb") #读取html模板
    try:
      str_text=''
      all_the_text = InFile.readlines() #读取文件生成一个列表
      for text in all_the_text:
        str_text+=text.strip() #去除多余的行空格
    finally:
      InFile.close()
    str_record=''
    for i in self.record:
      #print self.record
      
      if i.has_key('Name_Server'): #此处由于业务需要,源记录里可能只能用户信息,而无数据
        if len(i['Name_Server'])>4:
           ns_name='.'.join(i['Name_Server'].split('|')[1:][0].split('.')[1:])
           if ns_name=='xxxxx' or ns_name=='xxxxx':
              i['Name_Server']="xxxxx".encode("GBK")
              str_record+='<tr><td>'+i['Web_Nu']+'</td><td>'+i['Domain']+'</td><td>'+i['Name_Server']+'</td><td>'+i['New_Ip']+'</td><td>'+"系统自动修改".encode("GBK")+'</td></tr>'
           else:
              i['Name_Server']=i['Name_Server'].split('|')[1:][0]
              str_record+='<tr><td>'+i['Web_Nu']+'</td><td>'+i['Domain']+'</td><td>'+i['Name_Server']+'</td><td>'+i['New_Ip']+'</td><td style="color: #f00;">'+"需要人工修改".encode("GBK")+'</td></tr>'
        else:
         str_record+='<tr><td>'+i['Web_Nu']+'</td><td>'+i['Domain']+'</td><td>'+i['Name_Server']+'</td><td>'+i['New_Ip']+'</td><td style="color: #f00;">'+"需要人工修改".encode("GBK")+'</td></tr>'
 
        XML=str_text.replace("opt_time",self.migrate_date) #将组合的数据替换模板的变量
        XML=XML.replace("web_info",str_record)
        self.html_text = XML.decode("GBK") #对模板解码
      else:
        str_record+='<tr><td>'+i['Web_Nu']+'</td><td>'+'</td><td>'+'</td><td>'+i['New_Ip']+'</td><td>'+'</td></tr>'
        XML=str_text.replace("opt_time",self.migrate_date)
        XML=XML.replace("web_info",str_record)
        self.html_text = XML.decode("GBK")
    #print self.migrate_date
   
  def get_content_info(self):
     return self.html_text  #获取替换后模板数据
  def send_mail_opt(self,sub,content):  
    #print "go send_mail......................"
    me="xxxx".encode("GBK")+"<"+mail_user+">" #发信人  
    msg = MIMEText(content,'html','GBK')#消息格式与编码  
    msg['Subject'] = sub  #主题
    msg['From'] = me  
    msg['To'] = self.mail_key['Email'] #收信人  
    
    #print 'xxx',self.mail_key['Email']
    try:  
      server = smtplib.SMTP()  
      server.connect(mail_host)  
      server.login(mail_user,mail_pass) 
      #print "xxxxxxx",self.mail_key['Email'] 
      server.sendmail(me, self.mail_key['Email'], msg.as_string())  
      server.close()  
      with open('/home/migrate/mail_records/mail_list.txt','a') as ml:
        ml.write(self.mail_key['Email']+'\n')
      return True  
    except Exception, e:  
      return False
 
migrate_date='2015-07-04'
d=[{'Phone': '1233333','Web_Nu': 'wexsde333', 'Email': 'xxxx@xxx.com'}, {'Domain': 'www.kedie.com', 'Name_Server': '|xxxxx.com.cn', 'Dns_Ip': 'xxxxxxxx', 'Phone': '19999999', 'Old_Ip': '1.1.1.1', 'New_Ip':'2.2.2.2', 'Web_Nu': 'webspnc', 'Email': 'xxxxx@xxx.com.cn'}]
s=Send_notice_mail(migrate_date,d)
type_html=s.get_content_info()
#print type_html
s.send_mail_opt("xxxxxxxxxx".encode("GBK"),type_html)

用到的模块:

  import smtplib #以登录的方式发邮件,如果非登录的方式可能被对方认为垃圾邮件被拒

  from email.mime.text import MIMEText 源数据类型的定义 


ps:虽然写的很渣,但总算将功能实现了,不说了,继续后模块了,学习python不看标准库,学了一点用都没有。。。



免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

使用python发送html邮件

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

下载Word文档

猜你喜欢

使用python发送html邮件

说明:   最近一直在忙着业务迁移工作,己经有些日子没有写东西了,虽然写的很渣,还好是将功能实现了。#!/usr/bin/env python#coding:utf8 import smtplibfrom email.mime.text i
2023-01-31

Python 使用Gmail发送邮件

前言:2014-05-22记录在hi baidu上,现在移过来使用python向gmail发邮件"""发送邮件 1: 需要提供发送者的邮件、密码;接收者地址; 2:步骤: a:Login 失败说明无法登陆;
2023-01-31

python 使用stmp发送邮件

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

python 邮件发送

环境:python2.7 1 #coding:utf-8 2 from __future__ import unicode_literals 3 __author__ = 'crista' 4 5 import smtplib 6 fro
2023-01-30

python 发送邮件

#!/usr/bin/env python#coding:utf-8import smtplib,time,stringfrom email.mime.text import MIMETextSMTPserver = 'smtp.exmai
2023-01-31

python发送、抄送邮件

python发送抄送邮件sendemial.py#!/usr/bin/python# -*- coding: UTF-8 -*-import smtplibfrom email.mime.text import MIMETextfrom e
2023-01-31

python发送邮件

python通过smtp发送qq邮件import smtplibfrom email.mime.text import MIMETextfrom email.header import Header"""1》测试邮件发送2》有收件人、发件人
2023-01-30

zabbix用python发送邮件

!/usr/bin/pythoncoding: utf-8import smtplibimport sysfrom email.mime.text import MIMEText_user = "12345678@qq.com"_pwd
2023-01-31

python 使用exchange发送邮

安装库exchangelibpip install exchangelib脚本内容# coding=utf-8## Created on 2018/2/from exchangelib import DELEGATE, Account, C
2023-01-31

怎么用Python发送邮件

本篇内容主要讲解“怎么用Python发送邮件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Python发送邮件”吧!Python使用SMTP发送邮件SMTP(Simple Mail Tra
2023-06-04

python SMTP邮件发送

本例使用的时python2.7环境,python3的操作应该也是差不多的。需要用到smtplib和email两个包。发送文本类型的邮件下面看个发送文本邮件的例子(使用网易163的SMTP):# -*- coding: UTF-8 -*-im
2023-01-31

Python中如何使用SMTP发送邮件

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

Python中怎么使用SMTP发送邮件

这篇“Python中怎么使用SMTP发送邮件”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python中怎么使用SMTP发送
2023-06-28

PHP使用laravel邮件服务发送邮件

laravel自带SwiftMailer库,集成了多种邮件API,可以很方便的实现邮件的发送。在本教程中使用到的是SMTP(SimpleMessageTransferProtocol)简单邮件传输协议,通常理解为邮件发送服务器
2023-03-06

python 发送中文邮件

#!/usr/bin/python#coding:utf-8#导入smtplib和MIMEText import smtplibfrom email.Header import Headerfrom email.MIMEText impor
2023-01-31

Python实现邮件发送

使用smtplib模块发送邮件,它对smtp协议进行了简单的封装。smtp协议的基本命令包括:    HELO 向服务器标识用户身份    MAIL 初始化邮件传输 mail from:    RCPT 标识单个的邮件接收人;常在MAIL命
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录