Python SMTP 发送带附件电子邮件

起始于对现有工作的内容进行部分重复工作的释放,花费了两周的时间调试了完全可能自己吼得住看得懂能实现目标的代码,如标题所说,本代码主要用户带附件的电子邮件的发送;对于代码大家只需要修改下文件路径,邮箱地址即可运行,我这边主要是结合navicat数据导出之后+此发送邮件的代码,做成定时任务,让程序每天按时执行,大家就不需要再每天去导数据了,让程序来完成即可,不是有句话怎么说来着:懒人自动化 人越懒才会去想着怎么去做成自动化 安于现状的往往不会有很多的想法说了这么多废话,直接给大家看下面的代码:# encoding: utf-8import smtplibfrom datetime import datetimeimport osfrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextfrom email.mime.image import MIMEImageHOST = ‘smtp.163.com‘SUBJECT = u‘标题内容‘To = ‘[email protected],[email protected]‘ #收件人邮箱From = ‘[email protected]‘  #发件人邮箱msg = MIMEMultipart(‘related‘)msgtext= MIMEText("<font>你好,<br>&nbsp;&nbsp;数据详见附件,请查收!</font>","html","utf-8")msg.attach(msgtext)# 创建一个MIMEText对象,附加,xlsx文档#file_name = os.path.join(‘xxxx‘, ‘mail.txt‘)time = datetime.today().strftime(‘%Y-%m-%d‘)# file_name = ‘/home/test/db_%s.sql‘ % datetime.today().strftime(‘%Y-%m-%d‘)attach = MIMEText(open(‘/home/test/db_%s.sql‘ % time, ‘rb‘).read(), ‘base64‘, ‘utf-8‘)attach[‘Content-Type‘] = ‘application/octet-stream‘attach[‘Content-Disposition‘] = (u‘attachment; filename="db_%s.sql"‘ % time).encode(‘utf-8‘)msg.attach(attach)msg[‘Subject‘] = SUBJECTmsg[‘From‘] = Frommsg[‘To‘] = Totry:    server = smtplib.SMTP()    server.connect(HOST, ‘25‘)   # server.starttls()    server.login(‘登录邮箱地址‘, ‘授权码‘)    server.sendmail(From, To.split(‘,‘), msg.as_string())    server.quit()    print(u‘邮件发送成功!‘)except Exception, e:    print ‘失败‘ + str(e)写成这样一个完整的可用代码,中间过程不易,也希望能给需要的人提供帮助版权声明:本文由作者原创,未经允许不得转载 如有问题可联系本人进行咨询,qq:996551709 备注:博客园
时间: 2024-10-07 22:42:22

Python SMTP 发送带附件电子邮件的相关文章

smtp发送带附件的邮件(直接将string类型结果保存为附件)

该方式直接保存为HTML文件,也可以是文本文件,其它格式效果不是很好    MailMessage mmsg = new MailMessage();    mmsg.Subject = "邮件标题";    mmsg.Body = "邮件内容";    mmsg.To.Add("[email protected]");//接收邮箱    byte[] bytes = System.Text.Encoding.Default.GetBytes  

使用Spring发送带附件的电子邮件(站内和站外传送)

JavaMail的介绍 JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口.它是Sun发布的用来处理email的API.它可以方便地执行一些常用的邮件传输.   虽然JavaMail是Sun的API之一,但它目前还没有被加在标准的java开发工具包中(Java Development Kit),这就意味着你在使用前必须另外下载JavaMail文件.除此以外,你还需要有Sun的JavaBeans Activation Framework (JAF).JavaBeans Activa

Android上发送带附件的邮件

准备工作-下载最新版本的JMail https://java.net/projects/javamail/pages/Home#Download_JavaMail_1.5.2_Release http://www.oracle.com/technetwork/java/javase/downloads/index-135046.html 在android上发送邮件方式: 第一种:借助GMail APP客户端,缺点是必须使用GMail帐号,有点是比较方便 不需要写很多代码,但是不是很灵活. 第二种

Python2.7 smtplib发送带附件邮件报错STARTTLS解决方法

最近在SIOMP系统中添加一项功能时,即自动发送带附件邮件到指定邮箱时,发现在发送时报错:错误信息:STARTTLS extension not supported by server.很是奇怪,但发送无附件邮件时,可以正常发送,且不报错,前期以为是代码存在问题,如果调出对应的错误信息反馈,似乎和代码没有什么关系: 详细代码如下所示: # -*- coding: utf-8 -*- import email from email.mime.text import MIMEText from em

java mail邮件发送(带附件) 支持SSL

java mail邮件发送(带附件)有三个类 MailSenderInfo.java package mail; import java.util.Properties; import java.util.Vector; public class MailSenderInfo { // 发送邮件的server的IP和端口 private String mailServerHost; private String mailServerPort = "25"; // 邮件发送者的地址 pr

java mail邮件发送(带附件)

java mail邮件发送(带附件)有三个类 MailSenderInfo.java package mail; import java.util.Properties; import java.util.Vector; public class MailSenderInfo { // 发送邮件的服务器的IP和端口 private String mailServerHost; private String mailServerPort = "25"; // 邮件发送者的地址 priva

(转)用javamail发送带附件的邮件

本文转载自:http://redleaf.iteye.com/blog/78217 mail.java 代码 package mail; import java.util.* ; import java.io.* ; import javax.mail.* ; import javax.mail.internet.* ; import javax.activation.* ; public class Mail { //定义发件人.收件人.SMTP服务器.用户名.密码.主题.内容等 privat

自动化测试发送带附件的邮件

自动化测试发送带附件的邮件 标签(空格分隔): 带附件邮件 在我们的自动化测试中,有时候会发送报告,有时候会发送带附件的报告,具体带附件的报告怎么操作呢? 具体的步骤如下述所示:如下是QQ邮箱为例 import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart # 用于传送附件 smtpserver = 'smtp.exmail.qq.com' user = '*

C#发送带附件的邮件的代码

如下的代码是关于C#发送带附件的邮件的代码. MailMessage m = new MailMessage();m.Subject = "File attachment!";m.Body = "See the attached file.";m.Attachments.Add(new Attachment(@"C:test.txt"));SmtpClient client = new SmtpClient("smtp.w3mentor