Major Member
|
#! /usr/bin/env Python
#coding=utf-8
import smtplib
from email.mime.text import MIMEText
from email.Header import Header
import random
import dns.resolver
import string
import pyodbc
import sys
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=XXXX;DATABASE=XXXX;UID=sa;PWD=XXXXX')
cursor = cnxn.cursor()
cursor.execute("select Top 10 Ser_no,From_Name,From_Email,To_Email,Mail_Subject,ePaper_Content from SendMail_MailList Where State_Check='N'")
rows = cursor.fetchall()
for row in rows:
#print row.Ser_no, row.From_Email, row.To_Email
t = (row.Ser_no)
From_Name = Header((row.From_Name), charset='UTF-8')
From_Email = (row.From_Email)
To_Email = (row.To_Email)
Subject = Header((row.Mail_Subject), charset='UTF-8')
#NOWBODY = MIMEText((row.ePaper_Content), _subtype='html', _charset='UTF-8')
NOWBODY = (row.ePaper_Content)
print NOWBODY
host = To_Email.split("@")
answers = dns.resolver.query(host[1], 'MX')
host = "0"
newhost = "0"
port = "25"
for rdata in answers:
host = (rdata.exchange.to_text())
if host != "0":
break
smtp=smtplib.SMTP()
smtp.connect(host, port)
smtp.set_debuglevel(1)
smtp.noop()
body=string.join((
"From:%s <%s>" % (From_Name,From_Email),
"To:%s" % To_Email,
"MIME_Version: 1.0",
"Content-type: text/html",
"Subject: %s" % Subject,
"",NOWBODY),
"\r\n")
try:
smtp.ehlo()
smtp.sendmail(From_Email,To_Email,body)
MailReplyDesc="Successfully sent email!!"
Err_Type = "0"
except smtplib.socket.gaierror:
MailReplyDesc="Couldn't contact the host!!"
Err_Type = "1"
smtp.quit()#退出
現在的情況是, 可以正常寄送html Email , 但中文會有問題.
會出現.UnicodeEncodeError : ascii code can't encode charactrt u \u6211
google 是編碼問題. 但在嘗試 NOWBODY 讀進來時 .encode('utf8') 不行
或是在body 兜字串時.encode('utf8') 也不行, 再
再請教一下, 請問是哪地方需要再修正呢?
__________________
|