Как отправить статические файлы с помощью Flask-Mail? - PullRequest
0 голосов
/ 04 апреля 2019

Я использую Flask-Mail для отправки уведомлений моим пользователям, вот фрагмент моего кода:

def send_async_email(app, msg):
    with app.app_context():
        mail.send(msg)

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()

В моем html_body я отправляю шаблон счета-фактуры, включая статические файлы, такие как .png и .gif , но при отправке электронного письма оно не отправляется. включил статические файлы в почтовый ящик пользователя.

В моем html-скрипте приведен фрагмент того, как я называю статические файлы:

<img src="{{ url_for('static', filename='email-template/images/facebook@2x.png') }}"/>

Я также пытался добавить _external=True в вызов статических файлов, но все еще не работает.

и затем я также попытался не использовать jinja2 при вызове файлов, например:

src="./images/facebook@2x.png"

Я пытаюсь отправить это письмо с и на GMAIL , и я также проверил его в Yahoo , но все еще не работает.

Итак, возможно ли включить статический файл при отправке электронной почты с помощью Flask-Mail ..?

РЕДАКТИРОВАТЬ : После того, как я попытаюсь разными способами и в нескольких экспериментах, я также не могу добавить CSS из внешнего вида, как начальный загрузчик ( это работает в моем локальном, но стиль не отображается в почтовом ящике )

Я все еще пытаюсь найти способ решить эту проблему.

РЕДАКТИРОВАТЬ 2 : После долгих попыток я все еще не понимаю этого, даже если отправляю почту напрямую, используя GMAIL API , следуя этому хорошему статья .

РЕДАКТИРОВАТЬ 3 : После почти двух месяцев, с которыми я столкнулся с этой проблемой, она работает теперь, когда я отправляю электронное письмо, если мое приложение работает на VPS, но не работает, если мое приложение работает на локальной или на герою ( hobby dev )

...