ยาว ๆ เลยขอมาจับแยกให้ดูดีขึ้น แต่ยังไม่ได้ test เลย คือเอามาแปลงอย่างเดียว
เดี๋ยวถ้าว่าง ๆ จะมาประกอบและ test ใหม่
ตอนนี้ง่วงมาก ๆ เลย Z z z z . . .
อ้างอิงจาก : http://bluegear.wordpress.com/2009/10/20/email-attach-file-with-python/#comment-32
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
import xml.etree.ElementTree as ET
class EMail(Object):
def init(self, url_mail_server):
self.url_mail_server = 'mailserver.company.com'
self.smtp = smtplib.SMTP(self.url_mail_server)
def gen_template(self, **kw):
root = ET.Element("html")
head = ET.SubElement(root, "head")
body = ET.SubElement(root, "body")
p = ET.SubElement(body, "p")
a = ET.Element('a', href='http://www.companyhomepage.com')
img = ET.Element('img', src='cid:image1')
a.append(img)
p.append(a)
return ET.tostring(root, 'UTF-8')
def msg(self, **kw):
msg = MIMEMultipart('alternative')
msg['Subject'] = kw.get('subject')
msg['From'] = kw.get('sender')
msg['To'] = ''.join(['%s, '%b for b in kw.get('receiver')]).rstrip(', ')
msg.attach(MIMEText(gen_template(**kw), 'html'))
fp = open(kw.get('image'), 'rb')
img = MIMEImage(fp.read())
fp.close()
img.add_header('Content-ID', '')
msg.attach(img)
return msg
def send(self, **kw):
self.smtp.sendmail(kw.get('sender'), kw.get('receiver'), msg(**kw))
def finish(self):
self.smtp.quit()
if '_main_' == _name_:
d = {}
d['sender'] = 'sender@company.com'
d['receiver'] = ['vip1@something.com', 'vip2@something.com']
d['subject'] = 'Test Embed Image With Url'
d['image'] = 'image1.gif'
email = EMail('mailserver.company.com')
email.send(**d)
d['image'] = 'image2.gif'
email.send(**d)
d['image'] = 'image3.gif'
email.send(**d)
email.finish()