如何配置 Flask Mail 以使用 Postfix

Posted

技术标签:

【中文标题】如何配置 Flask Mail 以使用 Postfix【英文标题】:How to configure Flask Mail to work with Postfix 【发布时间】:2020-10-07 19:09:40 【问题描述】:

我设置了一个运行我的 Flask 应用程序的 ubuntu 18.04lts 服务器,我需要能够向用户发送一封确认电子邮件以让他们创建一个帐户。我正在使用 Flask-User 来处理帐户授权/身份验证,并且我知道它使用 Flask-Mail 来处理确认电子邮件。

那里有很多关于如何设置烧瓶邮件以通过 gmail 发送电子邮件的教程,我使用了一段时间,但是(和其他 smtp 客户端)只允许您发送最多 (我相信)每天大约 100 封电子邮件,我可能需要处理比这更多的电子邮件。我发现了 ubuntu 的 postfix,我已经设置好了。但是,我似乎无法弄清楚我需要将哪些配置传递给我的应用才能使其正常工作。

我看过以下问题,但它和其他所有教程似乎都已经弄清楚了配置。

在 Ubuntu 服务器上使用 Flask 和 FlaskMail 和 Postfix 时出现 BadHeaderError

这是我的意思的一个例子:

在我的 config.py 中(我需要 ??? 条目):

import json

with open('/etc/config.json') as config_file:
    config = json.load(config_file)

class Config:
    MAIL_SERVER = # ??? 
    MAIL_USERNAME = # ???
    MAIL_PASSWORD = # ???
    MAIL_DEFAULT_SENDER = # ???
    MAIL_PORT = # ???
    MAIL_USE_SSL = # ???
    MAIL_USE_TLS = # ???
    SECRET_KEY = config.get('SECRET_KEY')
    SQLALCHEMY_DATABASE_URI = config.get('SQLALCHEMY_DATABASE_URI')
    CSRF_ENABLED = True
    USER_ENABLE_EMAIL = True

我会将这些变量中的大部分放在我的 config_file 中,但我不知道这些值应该是什么。假设我已将后缀配置为支持 TLS。

如果需要,我可以提供任何其他相关信息。在我的 init.py 文件中,我只是从这个文件中导入我的配置。

编辑:我知道你不能给我具体的值,我也不是专门为我的机器寻找参数。我只是不知道我在这些字段中需要什么相对值,例如,我需要用户名吗?它是我的服务器的名称吗?当前系统用户的名字?密码是我的服务器的密码吗?没有密码,因为它是本地的?等等

【问题讨论】:

那个???是您的电子邮件服务器的参数,在这种情况下是 posix 服务器。 SERVER 使用 te 是 127.0.0.1 用户名机器用户(或至少 posix 用户)及其密码,端口必须是 25 或 587。由于它是本地主机,您可以使用或不使用 SSL 和 TLS,为 False,但最重要的一点是为您的域启动和运行并正确配置后缀 【参考方案1】:

我可以帮助您的不多,因为这些值与您配置 Postfix 服务器的值完全相同。

MAIL_SERVER = # ???

例如mail.example.net,或您的邮件服务器在 (localhost, ...) 上可用的任何域

MAIL_USERNAME = # ???

这是用于身份验证的用户名。

MAIL_PASSWORD = # ???

这是用于身份验证的密码(与您在配置发送电子邮件时在邮件客户端中输入的密码相同)

MAIL_DEFAULT_SENDER = # ???

这是一个电子邮件地址,例如info@example.net

MAIL_PORT = # ???

Postfix 正在监听的端口,例如25 或 587 或您配置的任何值。

MAIL_USE_SSL = # ??? MAIL_USE_TLS = # ???

如果您使用加密,则必须相应地激活它们。例如我的邮件服务器使用 TLS,所以我设置了MAIL_USE_TLS = True

【讨论】:

是的,对不起,我想我没有说清楚,我不是专门为我的机器寻找参数。我只是不知道我在这些字段中需要什么相对值,例如,我需要用户名吗?它是我的服务器的名称吗?当前系统用户的名字?密码是我的服务器的密码吗?没有密码,因为它是本地的?等 用户名是邮箱账号的用户名,密码也是一样。这取决于您如何配置 Postfix。如果您不需要身份验证,则可以省略这两个值。

以上是关于如何配置 Flask Mail 以使用 Postfix的主要内容,如果未能解决你的问题,请参考以下文章

配置 Flask-Mail 以使用 GMail

Python Flask-Mail环境变量配置

一百零五:CMS系统之flask-mail使用和邮箱配置发送邮件功能

Flask-Mail使用config.from_object()时无法读取配置

Flask 学习-61.Flask-Mail 发送邮件

简说Python WEBflask-mail电子邮件