2016-09-21 1 views
-1

Я пытаюсь отправить электронное письмо в python, но программа сработает, когда я запускаю ее либо как функцию в более крупной программе, либо самостоятельно в интерпретаторе.Ошибка при отправке электронной почты в Python 2.7.10

import smtplib 

from email.mime.multipart import MIMEMultipart 
from email.mime.text import MIMEText 

fromaddr = "[email protected]" 
toaddr = "[email protected]" 
msg = MIMEMultipart() 
msg['From'] = fromaddr 
msg['To'] = toaddr 
msg['Subject'] = "Hi there" 

body = "example" 
msg.attach(MIMEText(body, 'plain')) 

server = smtplib.SMTP('smtp.gmail.com', 587) 
server.starttls() 
server.login(fromaddr, "Password") 
text = msg.as_string() 
server.sendmail(fromaddr, toaddr, text) 
server.quit() 

В переводчику, он, кажется, не в состоянии с server = smtplib.SMTP('smtp.gmail.com', 587)

Любые идеи?

+3

Пожалуйста, добавьте полный ответ на свой вопрос! –

ответ

0

Мое стандартное предложение (как я его разработчик) - yagmail.

Установка: pip install yagmail

Тогда:

import yagmail 
yag = yagmail.SMTP(fromaddr, "pasword") 
yag.send(toaddr, "Hi there", "example") 

Много вещей можно сделать проще с помощью пакета, такие как HTML электронной почты, добавление вложений и избегая необходимости писать пароли в сценарии.

Для получения инструкций ко всем этим (и более, извините за клише), посмотрите на readme on github.

0

Это потому, что вы пытаетесь подключиться к SMTP-серверу Google. Обратите внимание, что если вы используете Google SMTP вы должны использовать:

Имя: Ваш Gmail адрес
Пароль: Ваш Gmail пароль

И вы должны быть уже вошли в систему Если вы все еще получаете сообщение об ошибке, вы должны. проверьте, в чем проблема в этом списке: https://stackoverflow.com/a/25238515/1600523

Примечание. Вы также можете использовать свой собственный SMTP-сервер.