POP-преди-SMTP

Наскоро трябваше да преместя едно от моите уеб приложения към нов хостинг доставчик. Пощата и уеб услугата все още се поддържат на стария хостинг сайт, но когато се опитам да изпратя имейл от новия сървър, получавам грешка;

„Сървърът отхвърли един или повече адреси на получатели. Отговорът на сървъра беше:

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

Попитах моя стар хостинг доставчик какво трябва да направя, за да поправя това и те ми отговориха с

Пощенският сървър работи на POP преди SMTP. Ако не бъде получено валидно POP влизане преди изпращане на поща през сървъра, тогава пощата се поставя в сивия списък и се задържа 5 минути преди повторен опит.

За да предотвратите това, просто направете Получаване, преди да изпратите имейл

Някой има ли идея как да направя POP преди SMTP в C#?


person Skittles    schedule 11.11.2008    source източник


Отговори (6)


не съм сигурен как 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 ).

person Owen    schedule 11.11.2008

Списват ви в сивия списък, защото се свързвате от новия си доставчик, нали? Новият доставчик няма ли SMTP, който позволява връзки от IP-обхвата на сървърите?

Друг подход е да направите сами MX-търсене и да се свържете директно с авторитетния SMTP-сървър, за чийто адрес изпращате имейл. Това обаче също така изисква да се справите със сиви списъци, което означава повторни опити за 4xx отговори, за да имате надеждна доставка.

Може би трябва да попитате вашия доставчик дали предоставя и автентичен SMTP като алтернатива, това е нещо като друга възможна точка на повреда с необходимостта от POP-влизане, преди да използвате SMTP-услугата.

person jishi    schedule 11.11.2008
comment
Джиши, да, сивият списък е, защото се опитвам да се свържа от новия си доставчик към стария доставчик, където са моята поща и уеб услугите. Не съм сигурен дали новият ми доставчик позволява връзки от сървъра IP-ranger. Едно нещо, което научавам е, че използването на споделен хостинг е повече проблем, отколкото си струва. - person Skittles; 12.11.2008

Почти съм сигурен, че POP3 не е вграден в .NET Framework, така че ще трябва да го внедрите сами, както предложи Оуен, или да потърсите съществуваща POP3 библиотека като този.

Още по-добре би било да убедите вашия нов хостинг доставчик да смекчи това правило за сив списък.

person C. Dragon 76    schedule 12.11.2008

Успях да напиша кода за това. Готов съм да споделя решението (ако някой се интересува?), но не съм сигурен как най-добре да поставя кода в Stackoverflow? Това е около 50 реда код.

person Skittles    schedule 12.11.2008
comment
свържете го в блога си може би, ако смятате, че други може да искат да го използват? - person Owen; 13.11.2008
comment
Добра идея, Оуен.. Благодаря, ще го направя.. Не съм сигурен дали други ще искат да я използват, но е по-добре там, отколкото да остана на моя D диск.. - person Skittles; 13.11.2008

Както беше предложено, добавих кода към моя блог. Това не е най-добрият блог, публикуван някога, но някой може да го намери за полезен... POP-преди-SMTP

person Skittles    schedule 18.11.2008

Вече имате кода, който търсите, но ако мога да добавя в мислите си: Както някой друг вече предложи, бих проверил при стария доставчик дали предоставя AUTH със SMTP. За мен това, което казват, е, че „Можете да използвате SMTP само ако идвате от същия IP диапазон/подмрежа или ако сте се удостоверили“. Много интернет доставчици правят това със своите SMTP сървъри. Ако сте свързани чрез конкретен интернет доставчик, можете да използвате SMTP, без да предоставяте изрично никакви идентификационни данни за AUTH. Ако преминете към друг интернет доставчик и искате да използвате SMTP на стария интернет доставчик, ще трябва изрично да се удостоверите със SMTP сървъра.

person ayaz    schedule 18.11.2008