使用Python

时间:2017-02-09 12:12:12

标签: python html email flask webpage

我想使用Python和Flask将HTML网页作为邮件正文发送。我尝试使用MIME模块,但不知怎的,我无法发送邮件。如果有人对此有任何专业知识,请帮助我。

如果你能提供一些代码,那就太棒了。

3 个答案:

答案 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)