मैं प्रमाणन के साथ एक सरल smtp प्रेषक लिख रहा हूँ। यहाँ मेरी कोडपायथन 2.7 में smtplib का उपयोग कर ईमेल में एक वर्णमाला कैसे सेट करें?
SMTPserver, sender, destination = 'smtp.googlemail.com', '[email protected]', ['[email protected]']
USERNAME, PASSWORD = "user", "password"
# typical values for text_subtype are plain, html, xml
text_subtype = 'plain'
content="""
Hello, world!
"""
subject="Message Subject"
from smtplib import SMTP_SSL as SMTP # this invokes the secure SMTP protocol (port 465, uses SSL)
# from smtplib import SMTP # use this for standard SMTP protocol (port 25, no encryption)
from email.MIMEText import MIMEText
try:
msg = MIMEText(content, text_subtype)
msg['Subject']= subject
msg['From'] = sender # some SMTP servers will do this automatically, not all
conn = SMTP(SMTPserver)
conn.set_debuglevel(False)
conn.login(USERNAME, PASSWORD)
try:
conn.sendmail(sender, destination, msg.as_string())
finally:
conn.close()
except Exception, exc:
sys.exit("mail failed; %s" % str(exc)) # give a error message
यह सही काम करता है, तक मैं गैर- ASCII प्रतीक (रूसी सिरिलिक) भेजने का प्रयास करें। किसी संदेश में इसे सही तरीके से दिखाने के लिए मुझे एक वर्णमाला को कैसे परिभाषित करना चाहिए? अग्रिम में धन्यवाद!
यूपीडी। मैं अपने कोड बदल दिया है:
text_subtype = 'text'
content="<p>Текст письма</p>"
msg = MIMEText(content, text_subtype)
msg['From']=sender # some SMTP servers will do this automatically, not all
msg['MIME-Version']="1.0"
msg['Subject']="=?UTF-8?Q?Тема письма?="
msg['Content-Type'] = "text/html; charset=utf-8"
msg['Content-Transfer-Encoding'] = "quoted-printable"
…
conn.sendmail(sender, destination, str(msg))
तो, पहली बार मैं text_subtype = 'पाठ' spectify, और फिर शीर्षक में मैं एक संदेश [ 'सामग्री-प्रकार'] जगह = "text/html; charset = utf -8 "स्ट्रिंग। क्या यह सही है?
अद्यतन अंत में, मैं अपने संदेश समस्या समाधान कर लिया है आप संदेश = MimeText तरह ख़ाली (content.encode ('utf-8'), 'सादे', 'UTF-8')
हाय लोर्कन! 'To' और 'From' के बारे में यदि मैं उन्हें अपने संदेश में निर्दिष्ट करूंगा (जैसे संदेश ['से'] = '[email protected]')? मुझे इसे भी एन्कोड करना चाहिए या नहीं? –