Python - E-mail

Odesílání e-mailu

Odesílání e-mailů je velice jednoduché. Můžete se podívat na oficiální příklady pro Python 2.7 nebo Python 3.x.

Tyto příklady ukazují, jak poslat email přes SMTP nainstalovaný na vašem počítači (localhost):

import smtplib
from email.mime.text import MIMEText

msg = MIMEText("Dobry den!\nTelo emailu\nS pozdravem ...")

msg['Subject'] = 'Hlavicka emailu'
msg['From'] = 'odesilatel@example.com'
msg['To'] = 'prijemce@example.com'

# Odeslani emailu pres lokalni SMTP server
s = smtplib.SMTP('localhost')
# s.send_message(msg) # Takto jednoduse to jde od vezrze pythonu 3.2
s.sendmail(msg['From'], [msg['To']], msg)  # po staru
s.quit()

Tohle ale bude fungovat, jen pokud máte funkční lokální SMTP server. V OpenSuSE můžete použit YaST pro konfiguraci SMTP serveru, ale většinou instalace a nastavení SMTP serveru poměrně složité.

Následující příklad ukazuje, jak poslat email přes vzdálený server. Musíte si zjistit jen jméno serveru, přihlašovací jméno a heslo. (Stejné údaje, jaké potřebujete pro nastavení nějakého poštovního klienta, abyste mohli posílat email.)

Odeslání emailu pak vypadá nějak takto:

>>> import smtplib
>>> from email.mime.text import MIMEText
>>> msg = MIMEText("... telo emailu ...")
>>> msg['subject'] = 'Nejaky titulek'
>>> msg['from'] = 'odesilatel@example.com'
>>> msg['To'] = 'prijemce@example.com'
>>> s = smtplib.SMTP('smtp.centrum.cz', 587) #587 je port, muze byt 25 nebo tak neco
>>> s.login("vas email@centrum.cz",'vase heslo')
(235, 'Authentication succeeded')
>>> s.sendmail('vas email@centrum.cz',['prijemce@example.com'], msg.as_string())
{}
Komentář Hlášení chyby
Created: 2.9.2015
Last updated: 2.9.2015