суббота, 8 марта 2014 г.

Отправка писем из python 3.3.4 через gmail

Привожу скрипт для отправки писем из python через smtp.google.com.
Необходима авторизация, как настроить описано тут. После настройки дадут пароль, который надо прописать в скрипт.
Скрипт использует файл. Кодировка содержимого файла utf-8. В первых 5 строках файла содержится, собственно, письмо. В последующих - csv данные с адресом, комментарием и именем получателя.
Кодировка файла скрипта тоже utf-8.

# coding=utf-8

#логин на сервер осуществляется для каждого письма, потому что, 
#видимо, нельзя отправить больше 10 писем за одно подключение.

import smtplib
from email.mime.text import MIMEText
from datetime import date
from email.header import Header

from_addr = 'kutchin@gmail.com'
username = from_addr
password = 'kmtwvsotmwolxjgl'

with open('C:/Python33/_progz/emails.csv', 'r', encoding='UTF8') as f:
hello_text = f.readline().strip()
text1 = f.readline().strip()
text2 = f.readline().strip()
text3 = f.readline().strip()
text4 = f.readline().strip()
for ln in f:
email, undef, name  = ln.strip().split(',')
#тут заменяем адрес электронной почты на свой на всякий случай
email = from_addr
text = "{0} {1}!\n{2}\n{3}\n{4}\n\n{5}".format(hello_text, name, text1, text2, text3, text4)
print (email, text)
msg = MIMEText(text)
msg['Subject'] = Header('запрос информации по продукту', 'utf-8').encode()
msg['To'] = email
msg['From'] = from_addr
server = smtplib.SMTP('smtp.gmail.com:587')
server.ehlo()
server.starttls()
server.login(username, password)
server.sendmail(from_addr, email, msg.as_string())
server.quit

Комментариев нет:

Ярлыки