Flask-Mail для получения электронной почты пользователей? [Дубликат]

Вы можете назначить переменную (боковую панель) интерфейса для явного указания того, что она получит или назначит ей, чтобы она не выдавала ошибку времени компиляции.

this.sidebarService.getSidebar().subscribe((sidebar: any) => {
                        this.sidebar = sidebar.content; 
                    });
4
задан chrickso 8 November 2012 в 16:28
поделиться

2 ответа

Недавно я сделал что-то в этом направлении, с простым веб-приложением для закладок. У меня есть обычный способ создания закладки в закладки что-то, но я также хотел иметь возможность отправлять по электронной почте ссылки на него из таких приложений, как Reeder на моем iPhone и т. Д. Вы можете видеть, что я закончил с GitHub: subMarks .

Я использую Google Apps для своего домена для своей электронной почты, поэтому я создал специальный адрес для своего приложения, чтобы посмотреть на - Я действительно не хотел пытаться создать / настроить собственный сервер электронной почты.

файл mail_daemon.py сверху запускается как задание cron каждые 5 минут. Он подключается к серверу электронной почты с помощью пакета poplib Python, обрабатывает электронные письма, которые там есть, а затем отключается (одна часть, которую я чувствую, вынуждена указать, что я проверяю, что электронные письма от меня до их обработки :))

Приложение My Flask предоставляет переднюю часть закладок, отображая их из базы данных.

Я решил не вводить код обработки электронной почты в фактическое приложение флешки, потому что это может быть довольно медленный и будет работать только при посещении страницы, но вы могли бы сделать это, если бы захотели.

Вот какой-то код barebones, чтобы все получилось:

import poplib
from email import parser
from email.header import decode_header

import os
import sys

pop_conn = poplib.POP3_SSL('pop.example.com')
pop_conn.user('my-app@example.com')
pop_conn.pass_('password')

#Get messages from server:
messages = [pop_conn.retr(i) for i in range(1, len(pop_conn.list()[1]) + 1)]

# Concat message pieces:
messages = ["\n".join(mssg[1]) for mssg in messages]

#Parse message into an email object:
messages = [parser.Parser().parsestr(mssg) for mssg in messages]

for message in messages:
    # check message is from a safe recipient
    if 'me@example.com' in message['from']:

        # Get the message body text
        if message['Content-Type'][:4] == 'text':
            text = message.get_payload() #plain text messages only have one payload
        else:
            text = message.get_payload()[0].get_payload() #HTML messages have more payloads

        # decode the subject (odd symbols cause it to be encoded sometimes)
        subject = decode_header(message['subject'])[0]
        if subject[1]:
            bookmark_title = subject[0].decode(subject[1]).encode('ascii', 'ignore') # icky
        else:
            bookmark_title = subject[0]

        # in my system, you can use google's address+tag@gmail.com feature to specifiy
        # where something goes, a useful feature.
        project = message['to'].split('@')[0].split('+')


        ### Do something here with the message ###

pop_conn.quit()
0
ответ дан MalphasWats 1 September 2018 в 10:35
поделиться

Существует несколько способов, которые вы можете предпринять:

  • написать код, который использует IMAP или POP для получения электронных писем и обработки их. Либо запустите это с помощью crontab (или что-то подобное), либо добавьте его в свое приложение для флэков, а затем запустите его там, через crontab, который запрашивает волшебный URL-адрес или настраивает собственный поток таймера.
  • настроить MTA для доставки электронной почты для something@myapp.com путем подачи ее в программу, которую вы пишете (например, в Exim вы можете использовать транспорт pipe ). В этой программе вы можете либо обработать ее напрямую, либо сделать что-то вроде POSTing в своем флеш-приложении.
2
ответ дан Wichert Akkerman 1 September 2018 в 10:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: