Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Heroku 烧瓶邮件-暂停及;错误?[Errno-3]在发送邮件时_Heroku_Eventlet_Flask Mail - Fatal编程技术网

Heroku 烧瓶邮件-暂停及;错误?[Errno-3]在发送邮件时

Heroku 烧瓶邮件-暂停及;错误?[Errno-3]在发送邮件时,heroku,eventlet,flask-mail,Heroku,Eventlet,Flask Mail,我目前正试图让Flask Mail在heroku上运行,但不断遇到各种问题 一般守则如下: from threading import Thread from flask import render_template, current_app from flask_mail import Message from app import mail def send_async_email(app, msg): with app.app_context(): mail.s

我目前正试图让Flask Mail在heroku上运行,但不断遇到各种问题

一般守则如下:

from threading import Thread
from flask import render_template, current_app
from flask_mail import Message
from app import mail


def send_async_email(app, msg):
    with app.app_context():
        mail.send(msg)
        print("message sent)



def send_email(subject, sender, recipients, text_body, html_body):
    msg = Message(subject, sender=sender, recipients=recipients)
    msg.body = text_body
    msg.html = html_body
    Thread(target=send_async_email, args=(current_app._get_current_object(), msg)).start()
大致如下:

现在我的问题似乎是当我在heroku上运行它时。 在我的机器/开发环境中,代码运行良好,我得到了“message sent”打印语句,虽然我的收件箱中没有收到电子邮件,但这很好,它执行时没有错误,我可以在Heroku上以与在我的开发机器上相同的方式执行后解决电子邮件到达不足的问题

当我在Heroku上运行相同的代码时,我在日志中收到以下消息:

2021-04-06T10:14:41.736652+00:00 app[web.1]: Exception in thread Thread-2:

2021-04-06T10:14:41.736661+00:00 app[web.1]: Traceback (most recent call last):

2021-04-06T10:14:41.736662+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/eventlet/support/greendns.py", line 425, in resolve

2021-04-06T10:14:41.736662+00:00 app[web.1]:     use_network=use_network)

2021-04-06T10:14:41.736663+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/eventlet/support/greendns.py", line 380, in query

2021-04-06T10:14:41.736663+00:00 app[web.1]:     return end()

2021-04-06T10:14:41.736664+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/eventlet/support/greendns.py", line 359, in end

2021-04-06T10:14:41.736664+00:00 app[web.1]:     raise result[1]

2021-04-06T10:14:41.736664+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/eventlet/support/greendns.py", line 340, in step

2021-04-06T10:14:41.736665+00:00 app[web.1]:     a = fun(*args, **kwargs)

2021-04-06T10:14:41.736665+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/dns/resolver.py", line 1091, in query

2021-04-06T10:14:41.736666+00:00 app[web.1]:     True)

2021-04-06T10:14:41.736667+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/dns/resolver.py", line 1043, in resolve

2021-04-06T10:14:41.736667+00:00 app[web.1]:     timeout = self._compute_timeout(start, lifetime)

2021-04-06T10:14:41.736668+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/dns/resolver.py", line 950, in _compute_timeout

2021-04-06T10:14:41.736668+00:00 app[web.1]:     raise Timeout(timeout=duration)

**2021-04-06T10:14:41.736668+00:00 app[web.1]: dns.exception.Timeout: The DNS operation timed out after 5.107004642486572 seconds**

2021-04-06T10:14:41.736669+00:00 app[web.1]: 

2021-04-06T10:14:41.736669+00:00 app[web.1]: During handling of the above exception, another exception occurred:

2021-04-06T10:14:41.736670+00:00 app[web.1]: 

2021-04-06T10:14:41.736670+00:00 app[web.1]: Traceback (most recent call last):

2021-04-06T10:14:41.736671+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/threading.py", line 916, in _bootstrap_inner

2021-04-06T10:14:41.736671+00:00 app[web.1]:     self.run()

2021-04-06T10:14:41.736672+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/threading.py", line 864, in run

2021-04-06T10:14:41.736672+00:00 app[web.1]:     self._target(*self._args, **self._kwargs)

2021-04-06T10:14:41.736672+00:00 app[web.1]:   File "/app/app/email.py", line 9, in send_async_email

2021-04-06T10:14:41.736673+00:00 app[web.1]:     mail.send(msg)

2021-04-06T10:14:41.736673+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/flask_mail.py", line 491, in send

2021-04-06T10:14:41.736674+00:00 app[web.1]:     with self.connect() as connection:

2021-04-06T10:14:41.736674+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/flask_mail.py", line 144, in __enter__

2021-04-06T10:14:41.736675+00:00 app[web.1]:     self.host = self.configure_host()

2021-04-06T10:14:41.736675+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/flask_mail.py", line 158, in configure_host

2021-04-06T10:14:41.736675+00:00 app[web.1]:     host = smtplib.SMTP(self.mail.server, self.mail.port)

2021-04-06T10:14:41.736676+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/smtplib.py", line 251, in __init__

2021-04-06T10:14:41.736676+00:00 app[web.1]:     (code, msg) = self.connect(host, port)

2021-04-06T10:14:41.736677+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/smtplib.py", line 336, in connect

2021-04-06T10:14:41.736677+00:00 app[web.1]:     self.sock = self._get_socket(host, port, self.timeout)

2021-04-06T10:14:41.736678+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/smtplib.py", line 307, in _get_socket

2021-04-06T10:14:41.736678+00:00 app[web.1]:     self.source_address)

2021-04-06T10:14:41.736679+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/eventlet/green/socket.py", line 44, in create_connection

2021-04-06T10:14:41.736679+00:00 app[web.1]:     for res in getaddrinfo(host, port, 0, SOCK_STREAM):

2021-04-06T10:14:41.736680+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/eventlet/support/greendns.py", line 517, in getaddrinfo

2021-04-06T10:14:41.736680+00:00 app[web.1]:     qname, addrs = _getaddrinfo_lookup(host, family, flags)

2021-04-06T10:14:41.736681+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/eventlet/support/greendns.py", line 490, in _getaddrinfo_lookup

2021-04-06T10:14:41.736682+00:00 app[web.1]:     raise err

2021-04-06T10:14:41.736682+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/eventlet/support/greendns.py", line 479, in _getaddrinfo_lookup

2021-04-06T10:14:41.736682+00:00 app[web.1]:     answer = resolve(host, qfamily, False, use_network=use_network)

2021-04-06T10:14:41.736683+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/eventlet/support/greendns.py", line 432, in resolve

2021-04-06T10:14:41.736683+00:00 app[web.1]:     raise EAI_EAGAIN_ERROR

2021-04-06T10:14:41.736684+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/eventlet/support/greendns.py", line 479, in _getaddrinfo_lookup

2021-04-06T10:14:41.736684+00:00 app[web.1]:     answer = resolve(host, qfamily, False, use_network=use_network)

2021-04-06T10:14:41.736685+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/eventlet/support/greendns.py", line 432, in resolve

2021-04-06T10:14:41.736685+00:00 app[web.1]:     raise EAI_EAGAIN_ERROR

2021-04-06T10:14:41.736685+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/threading.py", line 916, in _bootstrap_inner

2021-04-06T10:14:41.736686+00:00 app[web.1]:     self.run()

2021-04-06T10:14:41.736686+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/threading.py", line 864, in run

2021-04-06T10:14:41.736687+00:00 app[web.1]:     self._target(*self._args, **self._kwargs)

2021-04-06T10:14:41.736687+00:00 app[web.1]:   File "/app/app/email.py", line 9, in send_async_email

2021-04-06T10:14:41.736688+00:00 app[web.1]:     mail.send(msg)

2021-04-06T10:14:41.736688+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/flask_mail.py", line 491, in send

2021-04-06T10:14:41.736688+00:00 app[web.1]:     with self.connect() as connection:

2021-04-06T10:14:41.736689+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/flask_mail.py", line 144, in __enter__

2021-04-06T10:14:41.736689+00:00 app[web.1]:     self.host = self.configure_host()

2021-04-06T10:14:41.736689+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/flask_mail.py", line 158, in configure_host

2021-04-06T10:14:41.736690+00:00 app[web.1]:     host = smtplib.SMTP(self.mail.server, self.mail.port)

2021-04-06T10:14:41.736697+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/smtplib.py", line 251, in __init__

2021-04-06T10:14:41.736697+00:00 app[web.1]:     (code, msg) = self.connect(host, port)

2021-04-06T10:14:41.736698+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/smtplib.py", line 336, in connect

2021-04-06T10:14:41.736698+00:00 app[web.1]:     self.sock = self._get_socket(host, port, self.timeout)

2021-04-06T10:14:41.736698+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/smtplib.py", line 307, in _get_socket

2021-04-06T10:14:41.736699+00:00 app[web.1]:     self.source_address)

2021-04-06T10:14:41.736699+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/eventlet/green/socket.py", line 44, in create_connection

2021-04-06T10:14:41.736700+00:00 app[web.1]:     for res in getaddrinfo(host, port, 0, SOCK_STREAM):

2021-04-06T10:14:41.736700+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/eventlet/support/greendns.py", line 517, in getaddrinfo

2021-04-06T10:14:41.736701+00:00 app[web.1]:     qname, addrs = _getaddrinfo_lookup(host, family, flags)

2021-04-06T10:14:41.736701+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/eventlet/support/greendns.py", line 490, in _getaddrinfo_lookup

2021-04-06T10:14:41.736701+00:00 app[web.1]:     raise err

2021-04-06T10:14:41.736720+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/eventlet/support/greendns.py", line 479, in _getaddrinfo_lookup

2021-04-06T10:14:41.736721+00:00 app[web.1]:     answer = resolve(host, qfamily, False, use_network=use_network)

2021-04-06T10:14:41.736722+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/eventlet/support/greendns.py", line 432, in resolve

2021-04-06T10:14:41.736722+00:00 app[web.1]:     raise EAI_EAGAIN_ERROR

2021-04-06T10:14:41.736722+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/eventlet/support/greendns.py", line 479, in _getaddrinfo_lookup

2021-04-06T10:14:41.736723+00:00 app[web.1]:     answer = resolve(host, qfamily, False, use_network=use_network)

2021-04-06T10:14:41.736723+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/eventlet/support/greendns.py", line 432, in resolve

2021-04-06T10:14:41.736723+00:00 app[web.1]:     raise EAI_EAGAIN_ERROR

2021-04-06T10:14:41.736724+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/threading.py", line 916, in _bootstrap_inner

2021-04-06T10:14:41.736724+00:00 app[web.1]:     self.run()

2021-04-06T10:14:41.736725+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/threading.py", line 864, in run

2021-04-06T10:14:41.736725+00:00 app[web.1]:     self._target(*self._args, **self._kwargs)

2021-04-06T10:14:41.736725+00:00 app[web.1]:   File "/app/app/email.py", line 9, in send_async_email

2021-04-06T10:14:41.736726+00:00 app[web.1]:     mail.send(msg)

2021-04-06T10:14:41.736727+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/flask_mail.py", line 491, in send

2021-04-06T10:14:41.736727+00:00 app[web.1]:     with self.connect() as connection:

2021-04-06T10:14:41.736728+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/flask_mail.py", line 144, in __enter__

2021-04-06T10:14:41.736728+00:00 app[web.1]:     self.host = self.configure_host()

2021-04-06T10:14:41.736728+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/flask_mail.py", line 158, in configure_host

2021-04-06T10:14:41.736729+00:00 app[web.1]:     host = smtplib.SMTP(self.mail.server, self.mail.port)

2021-04-06T10:14:41.736729+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/smtplib.py", line 251, in __init__

2021-04-06T10:14:41.736730+00:00 app[web.1]:     (code, msg) = self.connect(host, port)

2021-04-06T10:14:41.736730+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/smtplib.py", line 336, in connect

2021-04-06T10:14:41.736730+00:00 app[web.1]:     self.sock = self._get_socket(host, port, self.timeout)

2021-04-06T10:14:41.736731+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/smtplib.py", line 307, in _get_socket

2021-04-06T10:14:41.736731+00:00 app[web.1]:     self.source_address)

2021-04-06T10:14:41.736732+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/eventlet/green/socket.py", line 44, in create_connection

2021-04-06T10:14:41.736732+00:00 app[web.1]:     for res in getaddrinfo(host, port, 0, SOCK_STREAM):

2021-04-06T10:14:41.736732+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/eventlet/support/greendns.py", line 517, in getaddrinfo

2021-04-06T10:14:41.736733+00:00 app[web.1]:     qname, addrs = _getaddrinfo_lookup(host, family, flags)

2021-04-06T10:14:41.736733+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/eventlet/support/greendns.py", line 490, in _getaddrinfo_lookup

2021-04-06T10:14:41.736733+00:00 app[web.1]:     raise err

2021-04-06T10:14:41.736734+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/eventlet/support/greendns.py", line 479, in _getaddrinfo_lookup

2021-04-06T10:14:41.736734+00:00 app[web.1]:     answer = resolve(host, qfamily, False, use_network=use_network)

2021-04-06T10:14:41.736734+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/eventlet/support/greendns.py", line 432, in resolve

2021-04-06T10:14:41.736735+00:00 app[web.1]:     raise EAI_EAGAIN_ERROR

2021-04-06T10:14:41.736735+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/eventlet/support/greendns.py", line 479, in _getaddrinfo_lookup

2021-04-06T10:14:41.736735+00:00 app[web.1]:     answer = resolve(host, qfamily, False, use_network=use_network)

2021-04-06T10:14:41.736736+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/eventlet/support/greendns.py", line 432, in resolve

2021-04-06T10:14:41.736736+00:00 app[web.1]:     raise EAI_EAGAIN_ERROR

**2021-04-06T10:14:41.736737+00:00 app[web.1]: socket.gaierror: [Errno -3] Lookup timed out**
我尝试过各种解决方案,更改端口,更改电子邮件提供商(gmail和webhost提供的电子邮件),但似乎找不到解决方案

有什么想法吗