使用html模板在python中发送电子邮件

use*_*194 5 python email smtp celery flask

嗨,我正在尝试编写单独的邮件服务,它与我们的烧瓶应用程序分离.所以我正在寻找一种方法来在用户首次登录我们的烧瓶应用程序时发送欢迎电子邮件.我正在使用Celery和rabbitmq进行异步操作.

这是我的电子邮件功能 -

sen = 'example@gmail.com'
pwd = 'my_password'

@celery.task
def send_email(nickname, email):
    msg = MIMEMultipart('alternative')
    msg['Subject'] = 'my_sub'
    msg['From'] = sen
    msg['To'] = email

    html = <b>test_body</b>

    part1 = MIMEText(html, 'html')
    msg.attach(part1)

    server = smtplib.SMTP("smtp.gmail.com", 587) 
    server.ehlo()
    server.starttls()
    server.login(sen, pwd)
    server.sendmail(sen, [email], msg.as_string())
    server.close()
Run Code Online (Sandbox Code Playgroud)

最初我使用flask的render_template来获取html主体和主题.但我不想使用烧瓶扩展(我有我的理由).所以我的问题是:

1)如何使用电子邮件模板以便轻松配置主题和正文字段?

2)如何将默认电子邮件发件人和密码放在配置文件/电子邮件模板中(可能与q1有关)?

3)似乎我有很多代码要发送简单的电子邮件.你能建议一些优化技术(省略步骤)吗?

在此先感谢您的帮助.

小智 1

我编写了一个简单的模块(mail.py)来使用模板(HTML/TEXT)发送电子邮件。希望有帮助!

https://github.com/ludmal/pylib