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

标签 python email flask smtp celery

我正在尝试编写一个单独的邮件服务,它与我们的 Flask 应用程序分离。我正在寻找一种在用户首次登录我们的 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()

最初我使用 Flask 的 render_template 来获取 HTML 正文和主题。但我不想使用 Flask 扩展(我有我的理由)。所以我的问题是:

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

  2. 如何将默认电子邮件发件人和密码放入 config 文件/电子邮件模板(可能与 q1 相关)?

  3. 发送一封简单的邮件好像代码很多。你能建议一些优化技术(省略步骤)吗?

最佳答案

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

https://github.com/ludmal/pylib

关于python - 使用 HTML 模板在 python 中发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19595702/

相关文章:

python - 删除某些内容后如何在 OS X Yosemite 上恢复 python?

python - 如何修复运行时错误: deque mutated during iteration in Python

html - 所见即所得编辑器覆盖页面 css?

PHP - 过滤电子邮件正文,删除回复引号

python - 当在其中一个应用程序上调用 session.clear 时,单个 apache 服务器上的多个 Python Flask 应用程序丢失 session

python - 搜索字符串中的特定情况

python - 从脚本导入安装的包会引发 "AttributeError: module has no attribute"或 "ImportError: cannot import name"

php - 使用Gmail SMTP发送邮件php不要到达

python - SQLAlchemy 连接查询 - 最有效的查询方式

authentication - 使用 Spring Security 进行 flask 用户身份验证