2012-02-10 75 views
0

我有一个我想通过电子邮件发送的test.html文件(我指的是关于页面内容)。有没有办法从html获取信息并将其作为电子邮件发送?如果您有任何其他想法,请分享。通过python发送一个Html文件

+1

你可以用Python或任何其它脚本语言这样做。只是谷歌有很多例子,你所要做的就是确保你在电子邮件标题中设置Content-type:text/html,以便目标能够相应地解释它。 – Johnydep 2012-02-10 11:12:21

回答

2

这里有一个快速和肮脏的脚本,我只是写这可能是你在找什么。

https://gist.github.com/1790847

""" 
this is a quick and dirty script to send HTML email - emphasis on dirty :) 
python emailpage.py http://www.sente.cc 
made to answer: http://stackoverflow.com/questions/9226719/sending-a-html-file-via-python 
Stuart Powers 
""" 
import lxml.html 
import smtplib 
import sys 
import os 


page = sys.argv[1] #the webpage to send 

root = lxml.html.parse(page).getroot() 
root.make_links_absolute() 

content = lxml.html.tostring(root) 

message = """From: Stuart Powers <[email protected]> 
To: Stuart Powers <[email protected]> 
MIME-Version: 1.0 
Content-type: text/html 
Subject: %s 

%s""" %(page, content) 


smtpserver = smtplib.SMTP("smtp.gmail.com",587) 
smtpserver.starttls() 
smtpserver.login("[email protected]",os.environ["GPASS"]) 
smtpserver.sendmail('[email protected]', ['[email protected]'], message) 
+0

嗨!谢谢你的答案,即使我不得不手动从二进制文件中生成lxml,因为我没有找到2.7安装程序,这就是我想要的。 – 2012-02-13 09:00:44

+0

哈哈,是啊lxml可以是一个痛苦的安装,但'make_links_absolute()'是非常方便:)很高兴有帮助。 – 2012-02-15 07:17:24

1

在Python中读取文件有很多种方法,并且也有方法可以用python发送邮件。为什么不查找文档并返回一些编码错误?

+1

你好,我看了文档,我问的是如果有一种方法已经保存在一个HTML文件中的页面,并将内容导入到电子邮件并发送它。我看到的例子是如何构建一个html电子邮件,这意味着我将不得不再次创建html。这是唯一的方法吗? – 2012-02-10 12:00:33