0

我正在使用 gmail smtp 服务器通过 python 从我的本地机器发送一封电子邮件。我在正文中嵌入了一个 html,其中包含一个图像,其源位于某个远程 ec2 服务器中,该服务器是一个 python 文件。

代码如下所示:

def getHtml(body):
        html = """\
<html>
  <head></head>
  <body>
     <div style='background-color: rgb(255,67,0); font-family: helvetica;padding:5px;color:#fff;'>google
     </div><br/>
        <img border="0" src="http://xyz.com:8000/poc.py">
        """+body+"""
     <br/><br/>
     <a title="launch button" href="http://google.com" style="font-size:15px;line-height:1.3;font-family:arial,sans-serif" target="_blank">Launch Now</a>
     <br/>
     <br/>
     <br/>
         - hi
         <br/>
         <br/>
 </body>
</html>
"""
        return html

def sendMail():
        subject = "POC"
        bodyContent="body"
        bodyText = bodyContent
        me = "x@gmail.com"
        to = "x@gmail.com"
        email_input = "jx@gmail.com"
        msg = MIMEMultipart('alternative')
        msg["From"] = me
        msg["To"] = me
        msg["Subject"] = subject
        part1 = MIMEText(bodyText, 'plain')
        part2 = MIMEText(getHtml(bodyText), 'html')
        msg.attach(part1)
        msg.attach(part2)
        s = smtplib.SMTP('smtp.gmail.com',587)
        s.ehlo()
        s.starttls()
        s.login('x@gmail.com', 'passwd')
        s.sendmail(me, [to,email_input], msg.as_string())




sendMail()

在 xyz.com 中,我在 poc.py 所在的文件夹中使用 python -m simplehttpserver 启动了一个 simplehttpserver。

poc.py 如下所示

#!/usr/bin/env python

import sys

f = open('workfile', 'w')
f.close()

filename="th_goldhill.png"
sys.stdout.write( "Content-type: image/png\r\n\r\n" + file(filename,"rb").read() )

现在这个文件没有在服务器中创建。当我打开电子邮件时,我在服务器“[28/May/2013 11:28:46]”GET /poc.py HTTP/1.1“200”上看到了这个,这意味着请求即将到达服务器。

4

0 回答 0