我正在尝试编写一个单独的邮件服务,该服务与我们的 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扩展(我有我的理由)。所以我的问题是:
如何使用电子邮件模板以便轻松配置主题和正文字段?
如何将默认电子邮件发件人和密码放入
config
文件/电子邮件模板中(可能与 q1 相关)?似乎我有很多代码来发送简单的电子邮件。你能建议一些优化技术(省略步骤)吗?
我已经编写了一个简单的模块(mail.py)来使用模板(HTML/TEXT)发送电子邮件。希望对您有所帮助!
https://github.com/ludmal/pylib
使用外部服务可能更简单。
服务(例如Mailchimp)易于集成。 您可以在其图层中设计模板,并通过将合并数据从应用程序发送到服务 API 来触发电子邮件。 从功能上讲,这很像在本地渲染模板并通过SMTP将其邮寄出去,但是它们具有复杂的工具,可以使消息格式适应设备,跟踪退回,提高可传递性,报告等。
像这样的服务通常有一个免费套餐,每月最多可容纳 1000 封电子邮件。