2008-11-11 4 views
2

Недавно мне пришлось перенести одно из моих веб-приложений на нового хостинг-провайдера. Почтовый и веб-сервис все еще хранится на старом хостинговом сайте, однако, когда я пытаюсь отправить электронное письмо с нового сервера, я получаю сообщение об ошибке;POP-Before-SMTP

«Сервер отклонил один или несколько адресов получателей Ответ сервера был:.

450 <email_address>: Recipient address rejected: Greylisted for 5 minutes 

Я спросил моего старого хостинг-провайдера, что мне нужно сделать, чтобы исправить это, и они ответили

Почтовый сервер работает на POP до SMTP. Если действительный вход в POP не , полученный до отправки почты через сервер, то почта защищена и удерживается в течение 5 минут перед повторной попыткой.

Чтобы избежать этого, просто сделайте получающий перед отправкой почты

Кто-нибудь есть идеи, как я делаю POP перед SMTP в C#?

ответ

2

Я не уверен, как C# будет обрабатывать специфику (сокеты?), Но в основном вы просто хотите установить соединение с вашим новым POP-сервером. вот сделка образец POP:

$ telnet new-pop-server.com 110 
Connected to new-pop-server.com. 
Escape character is '^]'. 
+OK 
USER <username> 
+OK 
PASS <password> 
+OK    // you're authenticated at this point 
LIST 
+OK 
.     // no new messages! 
QUIT 
+OK 

когда вы уполномочил вы должны быть в состоянии отправить почту программно. (USER, PASS, LIST, QUIT) - все команды, которые вы отправили (pop3 RFC).

1

Они greylist вы, потому что вы подключитесь к новому поставщику, не так ли? Разве у нового провайдера нет SMTP, который разрешает соединения с IP-диапазона серверов?

Другой подход - сделать MX-поиск самостоятельно и напрямую подключиться к авторитарному SMTP-серверу, для которого вы отправляете адрес электронной почты. Тем не менее, это также требует, чтобы вы справлялись с greylisting, то есть повторяли ответы на 4xx, чтобы иметь надежную доставку.

Возможно, вам следует попросить вашего провайдера, предоставили ли они SMTP-протокол auth в качестве альтернативы, это еще одна возможная ошибка, связанная с необходимостью входа в POP, прежде чем использовать SMTP-сервис.

+0

Jishi, да, greylist - это потому, что я пытаюсь подключиться от своего нового провайдера к старому провайдеру, где работают мои почтовые и веб-службы. Не уверен, что мой новый провайдер разрешает подключения с серверов IP-ranger. Одна вещь, которую я изучаю, заключается в том, что использование совместного хостинга - это больше проблем, чем того стоит. – Skittles 2008-11-11 22:54:22

1

Я уверен, что POP3 не встроен в .NET Framework, поэтому вам нужно реализовать его самостоятельно, как предложил Оуэн или искать существующую библиотеку POP3, такую ​​как this one.

Еще лучше убедить вашего нового хостинг-провайдера в ослаблении этого правила greylisting.

1

Мне удалось написать код для этого. Я хочу поделиться этим решением (если кому-то интересно?), Но не уверен, как лучше всего поместить код в Stackoverflow? Это около 50 строк кода.

+0

ссылку на ваш блог, возможно, если вы чувствуете, что другие могут захотеть использовать его? – Owen 2008-11-12 22:25:02

1

Как я уже сказал, я добавил код в свой блог. Это не лучший блог, когда-либо публиковавшийся, но кому-то это может показаться полезным ... POP-Before-SMTP

1

У вас уже есть код, который вы ищете, но если я могу добавить в свои мысли: Как и кто-то еще предложил, я будет проверять со старым провайдером, предоставляют ли они AUTH SMTP.Для меня они говорят, что «вы можете использовать SMTP только в том случае, если вы поступаете из одного и того же IP-диапазона/подсети или если вы аутентифицировали себя». Многие интернет-провайдеры делают это со своими SMTP-серверами. Если вы подключены через определенного интернет-провайдера, вы можете использовать SMTP без предоставления каких-либо авторизационных полномочий AUTH. Если вы переключитесь на другого интернет-провайдера и хотите использовать SMTP старого ISP, вам придется явно аутентифицироваться с SMTP-сервером.

 Смежные вопросы

  • Нет связанных вопросов^_^