воскресенье, 1 сентября 2013 г.

Отправка email при помощи python

В этом сообщении будет показано как, используя
Python, отправлять email-сообщения, причём будет показано как добавить файл-вложение в письмо.

Пример 1.

import smtplib   
from email.mime.text import MIMEText    
me = 'admin@mail.ru'
you = 'kot_smit@mail.ru'
smtp_server = 'smtp.mail.ru'
msg = MIMEText('Message e-mail')
msg['Subject'] = 'The contents of '
msg['From'] = me
msg['To'] = you
s = smtplib.SMTP(smtp_server)
s.sendmail(me, [you], msg.as_string())
s.quit()
 
  
Если нужно использовать свой smtp-сервер, то в строке
s = smtplib.SMTP(smtp_server)
переменную smtp_server указывать просто не надо. таким образом строка преобретает вид -
s = smtplib.SMTP()
затем нужно добавить строку
s.connect()
 
 
Пример 2.
Отправка письма с вложением, используется smpt.yandex.ru
from smtplib import SMTP_SSL
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email import Encoders
import os

filepath = "/path/to/file"
basename = os.path.basename(filepath)
address = "name@server"

# Compose attachment
part = MIMEBase('application', "octet-stream")
part.set_payload(open(filepath,"rb").read() )
Encoders.encode_base64(part)
part.add_header('Content-Disposition', 'attachment; filename="%s"' % basename)

# Compose message
msg = MIMEMultipart()
msg['From'] = address
msg['To'] = address
msg.attach(part)

# Send mail
smtp = SMTP_SSL()
smtp.connect('smtp.yandex.ru')
smtp.login(address, 'password')
smtp.sendmail(address, address, msg.as_string())
smtp.quit()

 

IT-записки

comments powered by Disqus