ошибка аутентификации python smtp gmail (отправка электронной почты через smtp-сервер gmail)

У меня есть следующий код

import smtplib
from email.mime.text import MIMEText



smtpserver = 'smtp.gmail.com'
AUTHREQUIRED = 1 # if you need to use SMTP AUTH set to 1
smtpuser = '[email protected]'  # for SMTP AUTH, set SMTP username here
smtppass = '123456'  # for SMTP AUTH, set SMTP password here

RECIPIENTS = ['[email protected]']
SENDER = '[email protected]'

msg = MIMEText('dsdsdsdsds\n')
msg['Subject'] = 'The contents of iii'
msg['From'] = '[email protected]'
msg['To'] = ''[email protected]''

mailServer = smtplib.SMTP('smtp.gmail.com',587)
mailServer.ehlo()
mailServer.starttls()
mailServer.ehlo()
mailServer.login(smtpuser, smtppass)
mailServer.sendmail(smtpuser,RECIPIENTS,msg.as_string())
mailServer.close()

этот код отлично работает на моем рабочем столе. но не получилось с этой ошибкой

smtplib.SMTPAuthenticationError: (535, '5.7.1 Username and Password not accepted. Learn more at\n5.7.1 http://mail.google.com/support/bin/answer.py?answer=14257 21sm4713429agd.11')

на моем Linux-сервере.

Не уверен, что пошло не так, должен ли я открыть какой-нибудь порт на моем Linux-сервере?


person icn    schedule 05.09.2009    source источник
comment
мой рабочий стол использует python2.5 (работает), linux box использует python2.6 (сбой)   -  person icn    schedule 06.09.2009


Ответы (2)


Порт 587, очевидно, должен быть открыт, но, вероятно, это так (иначе вы не получили бы подробное сообщение об ошибке). Python 2.5 и 2.6 не должны иметь значения. Я думаю, что проблема связана с «решением капчи» один раз на компьютере, для которого в настоящее время отклоняются входы в систему; следуйте подробным инструкциям по URL-адресу в сообщении об ошибке, например http://mail.google.com/support/bin/answer.py?answer=14257

person Alex Martelli    schedule 06.09.2009
comment
а! спасатель жизни! Большое спасибо! - person icn; 06.09.2009

import random,time
for i in range(1,100):
    y=random.randint(30,300)
    time.sleep(y)
    print ("Mailing for fun, Mail No: " + str(i))
    msg = MIMEText('Testing mailing \n Mail No:' + str(i))
    msg['Subject'] = 'Mail Number: ' + str(i)

Рандомизация почтового интервала для проверки поведения smtp :)

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

person Raj...Deo Vindice    schedule 15.04.2011