Форум сайта python.su
0
Беру простейший пример для Python по отправке почты через SMTP.
Пытаюсь отправить почту через gmail.com, на котором для отправки почты завел аккаунт.
# coding: utf8
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
toaddr = 'xintrea@gmail.com'
me = 'From: My Name'
you = 'To: ' + toaddr
server = 'smtp.gmail.com' # Сервер
port = 465 # Порты
user_name = '*****@gmail.com' # Отправитель
user_passwd = '*****' # Пароль отправителя
# Формируем заголовок письма
msg = MIMEMultipart('mixed')
msg['Subject'] = 'Заголовок письма'
msg['From'] = me
msg['To'] = toaddr
# Формируем письмо
part = MIMEText('Содержимое письма', 'Plain email')
msg.attach(part)
# Подключение
s = smtplib.SMTP(server, port)
s.ehlo()
s.starttls()
s.ehlo()
# Авторизация
s.login(user_name, user_passwd)
# Отправка письма
s.sendmail(me, toaddr, msg.as_string())
s.quit()
user_name = '*****@gmail.com' # Отправитель
user_passwd = '*****' # Пароль отправителя
# Подключение
s = smtplib.SMTP(server, port)
$ python mail.py
^CTraceback (most recent call last):
File "mail.py", line 27, in <module>
s = smtplib.SMTP(server, port)
File "/usr/lib/python2.7/smtplib.py", line 249, in __init__
(code, msg) = self.connect(host, port)
File "/usr/lib/python2.7/smtplib.py", line 310, in connect
(code, msg) = self.getreply()
File "/usr/lib/python2.7/smtplib.py", line 354, in getreply
line = self.file.readline()
File "/usr/lib/python2.7/socket.py", line 447, in readline
data = self._sock.recv(self._rbufsize)
KeyboardInterrupt
Офлайн
103
плпробуйте 587 порт
server = smtplib.SMTP('smtp.gmail.com:587') server.starttls() server.login(user_name,user_passwd)
Отредактировано terabayt (Май 14, 2015 17:18:10)
Офлайн
6
Для подключение к 465 порту нужно использовать SSL.
s = smtplib.SMTP_SSL('smtp.gmail.com', 465)
Офлайн
6
#!/usr/bin/python #file mail.py import smtplib import sys #Параметр, передаваемый при запуске скрипта: txtparam= 'qwerty' #От кого: fromaddr = 'Mr. Robot <user@gmail.com>' #Кому: toaddr = 'Administrator <user@gmail.com>' #Тема письма: subj = 'Notification from system' #Текст сообщения: msg_txt = 'Notice:\n\n ' + txtparam + '\n\nBye!' # #Создаем письмо (заголовки и текст) msg = "From: %s\nTo: %s\nSubject: %s\n\n%s" % ( fromaddr, toaddr, subj, msg_txt) #Логин gmail аккаунта. Пишем только имя ящика. #Например, если почтовый ящик someaccount@gmail.com, пишем: username = 'userl' #Соответственно, пароль от ящика: password = 'xxxxxxxxx' #Инициализируем соединение с сервером gmail по протоколу smtp. server = smtplib.SMTP('smtp.gmail.com:587') #Выводим на консоль лог работы с сервером (для отладки) server.set_debuglevel(1); #Переводим соединение в защищенный режим (Transport Layer Security) server.starttls() #Проводим авторизацию: server.login(username,password) #Отправляем письмо: server.sendmail(fromaddr, toaddr, msg) #Закрываем соединение с сервером server.quit()
Офлайн
0
terabayt
плпробуйте 587 порт
Офлайн