PYTHON — Не могу понять, почему я получаю эту ошибку при попытке отправить сообщение на адрес электронной почты. b ‘550 5.7.1 Ретрансляция не разрешена:

#python #sockets #email #networking

#python #сокеты #Адрес электронной почты #сеть

Вопрос:

Я пытаюсь отправить электронное письмо с одного адреса электронной почты на другой, используя сокеты в python. Как мне исправить эту проблему, с которой я сталкиваюсь?

Я попытался отключить брандмауэр, попробовать другие серверы и разные порты.

 from socket import *
msg = "rn I love computer networks!"
endmsg="rn.rn"
mailfrom = "MAIL FROM:<*********@gmail.com>rn"
rcptto="RCPT TO:<*********@gmail.com>rn"
data = "DATArn"
quitmsg="QUITrn"
subject = "Subject: Computer Networks SMTP Programming project Testrn"


#choose a mail server
mailserver="smtp.o2.ie"
port=25
connectaddress=(mailserver,port)
  

Предполагается, что мы получим сообщение, которое мы определили в электронном письме rcptto. Вместо этого мы получаем этот -> b’250 2.5.0 Адрес Ok. r n’
b ‘550 5.7.1 Ретрансляция не разрешена:

Комментарии:

1. Почтовый сервер по адресу smtp.o2.ie , скорее всего, отклоняет ваше сообщение, потому что вы не прошли проверку подлинности / вам не разрешено использовать ретранслятор.

2. Да, это то, что я прикидывал. Я создал свой собственный домен, поэтому я использую localhost, и я чувствую, что я рядом. b’220 НОУТБУК-692TUOC4 ESMTP r n ‘ b’250 Здравствуйте. r n ‘b’ 250 OK r n ‘b’ 250 OK r n ‘b’354 OK, отправить. r n ‘b’ 250 в очереди (0,015 секунды) r n ‘b’221 до свидания r n ‘Отправлено письмо Я получаю это в командной строке, но на мой адрес нет электронного письма.

3. Вы также не можете просто создать свой собственный домен 🙂 Настройка почтового сервера на самом деле довольно трудоемка, чтобы заставить другой сервер действительно принимать почту от вашего хоста. Вполне вероятно, что сообщение все еще просто находится в локальной очереди. Подключитесь по SSH к хосту и запустите postqueue -p Еще более вероятно, что ваш провайдер блокирует SMPT порт 25, поэтому, если вы попытаетесь запустить это из своего дома, вы не сможете ничего ретранслировать. Скорее всего, вам понадобится облачный VPS, который разрешает SMTP-соединения.

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

5. Хорошо, спасибо за вашу помощь! Я рассмотрю то, что вы предложили!

Ответ №1:

Возможно, у программы нет разрешения на использование адресов электронной почты для отправки сообщения. Нечто подобное произошло со мной, когда я использовал другой пакет для отправки электронных писем через Python.Проверьте эту ссылку на отправку электронных писем с использованием python другим способом.

Комментарии:

1. Я не хочу использовать библиотеку smtp. Вместо того, чтобы использовать smtp.o2.ie Я создал свой собственный домен. Я чувствую, что я близок … получаю этот ответ; b’220 НОУТБУК-692TUOC4 ESMTP r n ‘ b’250 Привет. r n ‘b’ 250 OK r n ‘b’ 250 OK r n ‘b’354 OK, отправить. r n ‘b’ 250 в очереди (0,015 секунды) r n ‘b’221 до свидания r n ‘Письмо отправлено, но я не получаю никакого ответа на мой фактический адрес электронной почты, который я указал в качестве получателя.

Ответ №2:

Я внес исправление — Вместо использования Google, yahoo и т.д. … Я Использовал адрес электронной почты, связанный с интернет-провайдером, которым я пользуюсь, и смог успешно отправить сообщение на электронную почту. ПРИМЕР -> Exampleuser@chart.net. Спасибо за помощь!

Комментарии:

1. А для сервера я использовал сервер от моего провайдера с портом 25.