我想使用Python和Flask将HTML网页作为邮件正文发送。我尝试使用MIME模块,但不知怎的,我无法发送邮件。如果有人对此有任何专业知识,请帮助我。
如果你能提供一些代码,那就太棒了。
答案 0 :(得分:2)
尝试使用FlaskMail https://pythonhosted.org/flask-mail/
msg = Message(
recipients=[''],
sender='xx@zz.yy',
reply_to='aa@bb.cc',
subject=mail.subject
)
msg.html = mail.body
mail.send(msg)
这里,mail
是来自“邮件”目录的导入文件,
并且body
是一个HTML标记。
答案 1 :(得分:1)
使用flask-mail是一个很好的工具,尝试代码我使用渲染模板将html渲染为我的邮件正文。
from flask_mail import Message
from flask import render_template
MAIL_USERNAME = os.environ.get('MAIL_USERNAME')
MAIL_PASSWORD = os.environ.get('MAIL_PASSWORD'
def send_mail_flask(to,subject,template,**kwargs):
msg = Message(subject=subject,sender='email@ofTheSender.com', recipients=to)
msg.body=render_template(template+'.txt', **kwargs)
msg.html=render_template(template+'.html', **kwargs)
mail.send(msg)
模板是您需要发送的html的路径,您还可以添加邮件的文本版本!
您可能需要根据您使用的SMTP服务添加更多环境变量。
答案 2 :(得分:0)
在单独的 python 文件 (emails.py) 上,我创建了一个电子邮件类,其中包含要根据用户的操作发送给用户的所有电子邮件(作为类方法),如下所示:
class Email:
def accountCreation():
body = "<html> <body> <p> {} </p> <br> <br> <p> Lorem Ipsum is simply dummy text of the printing and typesetting industry.</p> </body> </html>"
return body
然后在我使用了flask_mail库的另一个文件(app.py)上:
from flask_mail import Mail, Message
import emails
mailer = emails.Email()
try:
email = "johndoe@mail.com"
body = mailer.accountCreation()
msg = Message('Hello',recipients=[email])
msg.html = body
mail.send(msg)
except Exception as e:
print(e)