我正在使用 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”上看到了这个,这意味着请求即将到达服务器。