Форум сайта python.su
Всем привет! Хочу отправить письмо ч-з SMTP .
Но возникает ошибка “Отправитель отвергнут” при отправке. Как избежать ошибки?
Письмо пересылается в пределах одного домена. Получатель и отправитель один и тот же т.е письмо шлется само себе (это для теста).
server.sendmail(fromaddr, toaddrs, msg)
File "C:\Python25\lib\smtplib.py", line 695, in sendmail
raise SMTPRecipientsRefused(senderrs)
SMTPRecipientsRefused: {}
#!/usr/local/bin/python
import smtplib
def prompt(prompt):
return raw_input(prompt).strip()
fromaddr = prompt("testmail@DOMEN.ru")
toaddrs = prompt("testmail@DOMEN.ru").split()
print "Enter message, end with ^D (Unix) or ^Z (Windows):"
# Add the From: and To: headers at the start!
msg = ("From: %s\r\nTo: %s\r\n\r\n"
% (fromaddr, ", ".join(toaddrs)))
while 1:
try:
line = raw_input()
except EOFError:
break
if not line:
break
msg = msg + line
print "Message length is " + repr(len(msg))
server = smtplib.SMTP('name_server@DOMEN.ru')
server.set_debuglevel(1)
server.sendmail(fromaddr, toaddrs, msg)
server.quit()
Отредактировано (Июнь 16, 2011 11:00:09)
Офлайн
При создании server в качестве параметра нужно указывать адрес сервера, а не e-mail или что бы там хотели указать.
Пример из документации:
server = smtplib.SMTP('localhost')
server.set_debuglevel(1)
server.sendmail(fromaddr, toaddrs, msg)
server.quit()
Офлайн
masteritoя указывал имя сервера.
При создании server в качестве параметра нужно указывать адрес сервера, а не e-mail или что бы там хотели указать.
Пример из документации:server = smtplib.SMTP('localhost')
server.set_debuglevel(1)
server.sendmail(fromaddr, toaddrs, msg)
server.quit()
Офлайн
maillog на сервере посмотрите. Попробуйте с помощью telnet отправить письмо.
Офлайн
может авторизацию нужно пройти?
вот рабочий пример отправки
Офлайн
Этот код работает
# -*- coding: cp1251 -*-
import smtplib
from email.MIMEText import MIMEText
# отправитель
me = 'sob@yandex.ua'
# получатель
you = 'sob@yandex.ua'
# текст письма
text = 'Это тестовое письмо!\nС наилучшими пожеланиями!\nСаня Кривенко'
#text = unicode(text, "cp1251").encode("koi8-r")
# заголовок письма
subj = 'Привет от Python'
# параметры SMTP-сервера
server = "213.180.204.38" # "smtp.yandex.ua"
port = 25
user_name = "sob"
user_passwd = "******"
# формирование сообщения
msg = MIMEText(text, "", "cp1251")
msg['Subject'] = subj
msg['From'] = me
msg['To'] = you
# отправка
s = smtplib.SMTP(server, port)
s.starttls()
s.login(user_name, user_passwd)
s.sendmail(me, you, msg.as_string())
s.quit()
Офлайн
Ихааа заработало!!!.Спасибо большущеее!!! :).. единственное что убрал это авторизацию, в моём случае внутри домена, она не нужна ..
Офлайн