Python 电子邮件(包含 txt 和 html)
Python email (with txt and html)
我正在尝试使用 html 和 txt 发送电子邮件。但我需要将 .txt 文件的内容放入电子邮件 html 正文中。到目前为止,我只能让 txt 文件或 html 工作,但不能同时工作。有什么想法吗?
import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
sender = "sender@gmail.com"
receiver = "receiver@gmail.com"
msg = MIMEMultipart('alternative')
msg['Subject'] = "update"
msg['From'] = sender
msg['To'] = receiver
f1 = (open("email_data.txt"))
text = MIMEText(f1.read(),'plain')
html = """\
<html>
<head></head>
Header
<body>
<p>Something<br>
Update<br>
Need the contents of the text file to open here
</p>
</body>
</html>
"""
#part1 = MIMEText(text, 'plain')
part2 = MIMEText(html, 'html')
msg.attach(text)
msg.attach(part2)
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.ehlo()
server.login("sender", "password")
server.sendmail(sender, receiver, msg.as_string())
print 'Email sent'
server.quit()
我认为您正在寻找字符串格式,最基本的用例是
"""the text i want to insert is the following {} """.format(text)
yagmail 的绝佳案例。
import yagmail
yag = yagmail.SMTP('username','password')
html = '<h1>some header text</h1><p>{}</p>'.format(f1.read())
yag.send('toaddr@gmail.com', 'subject', html)
完成。
最好阅读上面 link 处的 yagmail 文档,看看实际发生了什么。
我正在尝试使用 html 和 txt 发送电子邮件。但我需要将 .txt 文件的内容放入电子邮件 html 正文中。到目前为止,我只能让 txt 文件或 html 工作,但不能同时工作。有什么想法吗?
import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
sender = "sender@gmail.com"
receiver = "receiver@gmail.com"
msg = MIMEMultipart('alternative')
msg['Subject'] = "update"
msg['From'] = sender
msg['To'] = receiver
f1 = (open("email_data.txt"))
text = MIMEText(f1.read(),'plain')
html = """\
<html>
<head></head>
Header
<body>
<p>Something<br>
Update<br>
Need the contents of the text file to open here
</p>
</body>
</html>
"""
#part1 = MIMEText(text, 'plain')
part2 = MIMEText(html, 'html')
msg.attach(text)
msg.attach(part2)
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.ehlo()
server.login("sender", "password")
server.sendmail(sender, receiver, msg.as_string())
print 'Email sent'
server.quit()
我认为您正在寻找字符串格式,最基本的用例是
"""the text i want to insert is the following {} """.format(text)
yagmail 的绝佳案例。
import yagmail
yag = yagmail.SMTP('username','password')
html = '<h1>some header text</h1><p>{}</p>'.format(f1.read())
yag.send('toaddr@gmail.com', 'subject', html)
完成。
最好阅读上面 link 处的 yagmail 文档,看看实际发生了什么。