Pau*_*aul 8 python email python-3.x
我目前有一个程序,它会从列表中随机选择引号并通过电子邮件发送给它们.我现在正试图在电子邮件中嵌入图像.我遇到了一个问题,我可以附上电子邮件,但我的报价不再有效.我在网上研究过,解决方案对我不起作用.请注意,我使用的是Python 3.2.2.
任何指导将不胜感激.
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage
attachment = 'bob.jpg'
msg = MIMEMultipart()
msg["To"] = to_addr
msg["From"] = from_addr
msg["Subject"] = subject_header
#msgText = MIMEText(<b>%s</b><br><img src="cid:bob.jpg"><br>, 'html') % body
fp = open(attachment, 'rb')
img = MIMEImage(fp.read())
fp.close()
msg.attach(img)
#email_message = '%s\n%s\n%s' % (subject_header, body, img)
email_message = '%s\n%s' % (subject_header, body)
emailRezi = smtplib.SMTP(mail_server, mail_server_port)
emailRezi.set_debuglevel(1)
emailRezi.login(mail_username, mail_password)
emailRezi.sendmail(from_addr, to_addr, email_message)
#emailRezi.sendmail(from_addr, to_addr, msg.as_string())
emailRezi.quit()
Run Code Online (Sandbox Code Playgroud)
从上面的代码可以看出,我尝试了不同的方法(参考#)
tri*_*eee 28
您正在经历皇家的痛苦,以构建一个有效的MIME消息msg,然后放弃它并发送一个简单的字符串email_message.
您应该首先了解正确的MIME结构是什么样的.多部分消息本身根本没有内容,如果需要文本部分,则必须添加文本部分.
以下是对脚本的编辑,其中添加了缺失的部分.我没有尝试发送结果消息.
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText # Added
from email.mime.image import MIMEImage
attachment = 'bob.jpg'
msg = MIMEMultipart()
msg["To"] = to
msg["From"] = from
msg["Subject"] = subject
msgText = MIMEText('<b>%s</b><br><img src="cid:%s"><br>' % (body, attachment), 'html')
msg.attach(msgText) # Added, and edited the previous line
fp = open(attachment, 'rb')
img = MIMEImage(fp.read())
fp.close()
img.add_header('Content-ID', '<{}>'.format(attachment))
msg.attach(img)
print msg.as_string()
exit(0)
Run Code Online (Sandbox Code Playgroud)
我已编辑将图像附加到邮件正文和 HTML 模板上。
import smtplib
from email import encoders
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email.mime.image import MIMEImage
strFrom = 'zzzzzz@gmail.com'
strTo = 'xxxxx@gmail.com'
# Create the root message
msgRoot = MIMEMultipart('related')
msgRoot['Subject'] = 'test message'
msgRoot['From'] = strFrom
msgRoot['To'] = strTo
msgRoot['Cc'] =cc
msgRoot.preamble = 'Multi-part message in MIME format.'
msgAlternative = MIMEMultipart('alternative')
msgRoot.attach(msgAlternative)
msgText = MIMEText('Alternative plain text message.')
msgAlternative.attach(msgText)
msgText = MIMEText('<b>Some <i>HTML</i> text</b> and an image.<br><img src="cid:image1"><br>KPI-DATA!', 'html')
msgAlternative.attach(msgText)
#Attach Image
fp = open('test.png', 'rb') #Read image
msgImage = MIMEImage(fp.read())
fp.close()
# Define the image's ID as referenced above
msgImage.add_header('Content-ID', '<image1>')
msgRoot.attach(msgImage)
import smtplib
smtp = smtplib.SMTP()
smtp.connect('smtp.gmail.com') #SMTp Server Details
smtp.login('exampleuser', 'examplepass') #Username and Password of Account
smtp.sendmail(strFrom, strTo, msgRoot.as_string())
smtp.quit()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37796 次 |
| 最近记录: |