我正在使用 Python 3.7 并尝试使用 smtplib 发送电子邮件。只要消息不包含任何土耳其字符(例如“ş,ı,і,ç,ö”),我的脚本就可以完美运行。到目前为止我发现的唯一可行的解决方案是使用"string=string.encode('ascii', 'ignore').decode('ascii')"
行,但是当我这样做时,字符串“İşlem tamamlanmıştır."
变成"lem tamamlanmtr."
。
那么如何保留原始字符串并绕过这个错误呢?
代码的相关部分:
import smtplib
server = smtplib.SMTP_SSL(r'smtp.gmail.com', 465)
server.ehlo()
server.login(gmail_user, gmail_password)
message = 'Subject: {}\n\n{}'.format(subject, text)
server.sendmail(from, to, message)
server.close()
import smtplib
from email.mime.text import MIMEText
text_type = 'plain' # or 'html'
text = 'Your message body'
msg = MIMEText(text, text_type, 'utf-8')
msg['Subject'] = 'Test Subject'
msg['From'] = gmail_user
msg['To'] = '[email protected] /cdn-cgi/l/email-protection,[email protected] /cdn-cgi/l/email-protection'
server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
server.login(gmail_user, gmail_password)
server.send_message(msg)
# or server.sendmail(msg['From'], msg['To'], msg.as_string())
server.quit()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)