Ciao Sto cercando di scrivere un servizio di posta separato che è disaccoppiato con la nostra applicazione di flask. Quindi sto cercando un modo per inviare e-mail di benvenuto quando gli utenti accedono per la prima volta alla nostra applicazione di flask. Sto usando Celery e rabbitmq per farlo in modo asincrono.Utilizzo di modelli html per inviare e-mail in python
Qui è la mia funzione e-mail -
sen = '[email protected]'
pwd = 'my_password'
@celery.task
def send_email(nickname, email):
msg = MIMEMultipart('alternative')
msg['Subject'] = 'my_sub'
msg['From'] = sen
msg['To'] = email
html = <b>test_body</b>
part1 = MIMEText(html, 'html')
msg.attach(part1)
server = smtplib.SMTP("smtp.gmail.com", 587)
server.ehlo()
server.starttls()
server.login(sen, pwd)
server.sendmail(sen, [email], msg.as_string())
server.close()
Inizialmente usavo render_template del pallone per ottenere il corpo html e soggetto. Ma non voglio usare l'estensione del pallone (ho le mie ragioni). Quindi le mie domande sono:
1) Come posso utilizzare i modelli di email in modo che i campi soggetto e corpo possano essere configurati facilmente?
2) Come posso inserire il mittente e la password di posta elettronica predefiniti in un file di configurazione/modello di posta elettronica (potrebbe essere correlato a q1)?
3) Sembra che abbia un sacco di codice per inviare una semplice email. Puoi suggerire alcune tecniche di ottimizzazione (omettendo i passaggi)?
Grazie in anticipo per tutto il vostro aiuto.
Un altro motivo per utilizzare il modello di e-mail: passare i parametri. Al fine di inviare e-mail personalizzate. – user2216194
Se non si desidera utilizzare il motore di template come 'jinja2', si prenderà in considerazione la [python standard library string.Template] (http://docs.python.org/2/library/string.html#template- stringhe) che fornisce semplici sostituzioni di stringhe. –
@ user2216194, ho anche requisiti simili, hai trovato una soluzione? e qual è la tua ragione per non usare jinja? o perché non render_template? (modifica: mi aiuterà nella valutazione delle soluzioni) –