Gramex SMTP 电子邮件问题

Posted

技术标签:

【中文标题】Gramex SMTP 电子邮件问题【英文标题】:Gramex SMTP Email Issue 【发布时间】:2021-06-03 12:18:21 【问题描述】:

我必须从 python 函数向多个用户发送一封包含动态内容的电子邮件。

我在 gramex.yaml 中提供了电子邮件详细信息,如下所示

email:
  barcode-mail-service:
    type: gmail
    email: gramex.guide@gmail.com
    password: alphaBetaGamma

在我的 python 函数中,我实现了如下邮件功能:

def email_users(_pending_users, approval):
    mailer = service.email['barcode-mail-service']
    content = []
    if approval == 'Approved':
        content = [f"Hi obj['user'],\n\n \
                    Welcome to the Service online portal!"
                    for obj in 
                    _pending_users.to_dict('r')
                  ]
    else:
        content = [f"Hi obj['user'],\n\n \
                   Your request has been rejected by the approver!"
                   for obj in _pending_users.to_dict('r')
                  ]
    to_list = _pending_users['email'].tolist() #gets list of all email ids
    for index in range(len(to_list)): #loops over each mail id and sends the email
        mailer.mail(
            to=to_list[index],
            subject=f'Barcode User Access approval',
            html=content[index]
        )

当我执行上述函数时,出现以下错误:

TimeoutError: [WinError 10060] 连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

这似乎是防火墙问题。 SMTP 在内部使用端口 25 发送电子邮件。在您的系统上启用(允许)端口 25 并尝试是否可行。您还需要在部署期间在服务器上启用此端口。

注意:请检查您的电子邮件交换机正在使用哪个端口发送电子邮件

You can check this link to enable on Windows OS

【讨论】:

我猜他们实际上并没有尝试连接到端口 25,但我对 Gramex 并不熟悉。该帖子可能应该包含回溯和任何相关的配置文件,以帮助我们查看他们尝试连接的位置。 @tripleee - Gramex 是一个用于构建数据应用程序的低代码平台。参考(learn.gramener.com/guide)。此问题与电子邮件服务消耗有关(learn.gramener.com/guide/email/#send-email) 对,所以barcode-mail-service的定义如果是Gmail服务应该应该指定端口587;但我们无法从问题中的信息中看出。 正确,如果中继是使用 SMTPS 完成的。完全同意@tripleee

以上是关于Gramex SMTP 电子邮件问题的主要内容,如果未能解决你的问题,请参考以下文章

电子邮件如何从 SMTP 传输到 IMAP?

使用 PHPMailer 通过 SMTP 发送电子邮件

带有本地 smtp 的 Django 电子邮件后端

使用 smtp mandrill 发送电子邮件的问题

在 Perl 中发送 SMTP 电子邮件的更快方法?

在添加附件时尝试通过不同的 smtp 服务发送电子邮件