Найти - Пользователи
Полная версия: smtplib except при отправке письма
Начало » Network » smtplib except при отправке письма
1
ijj
Всем привет! Хочу отправить письмо ч-з 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()
masterito
При создании server в качестве параметра нужно указывать адрес сервера, а не e-mail или что бы там хотели указать.

Пример из документации:
server = smtplib.SMTP('localhost')
server.set_debuglevel(1)
server.sendmail(fromaddr, toaddrs, msg)
server.quit()
ijj
masterito
При создании server в качестве параметра нужно указывать адрес сервера, а не e-mail или что бы там хотели указать.

Пример из документации:
server = smtplib.SMTP('localhost')
server.set_debuglevel(1)
server.sendmail(fromaddr, toaddrs, msg)
server.quit()
я указывал имя сервера.
ПРобовал тож самое, но вместо имени сервера указывал ip адрес там где localhost, эффект одинаков. Сервер выплевавает кучу reply с различными значениями а потом выводится такая же ошибка
masterito
maillog на сервере посмотрите. Попробуйте с помощью telnet отправить письмо.
o7412369815963
может авторизацию нужно пройти?

вот рабочий пример отправки
sanodin
Этот код работает

# -*- 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()
ijj
Ихааа заработало!!!.Спасибо большущеее!!! :).. единственное что убрал это авторизацию, в моём случае внутри домена, она не нужна ..
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB