WebMatrix Не отправляет почту теперь, когда она перемещена на сервер

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

Я получаю простое сообщение: истекло время ожидания операции. Учетная запись для этого настраивается через Gmail, поэтому я не думаю, что будет слишком много проблем, но поскольку я никогда раньше не настраивал WebMatrix на сервере, я действительно не знаю, как решить эту проблему.

Когда у меня работала электронная почта при создании этого веб-сайта, я использовал эти настройки, и все работало нормально:

WebMail.SmtpServer = "smtp.gmail.com";
WebMail.SmtpPort = 25;
WebMail.EnableSsl = false;

Затем, когда я запустил его с этими настройками на сервере, я получил эту ошибку:

The SMTP server requires a secure connection or the client was not authenticated.  The server response was: 5.7.0 Must issue a STARTTLS command first.

При этом мы попытались включить SSL, но после этого получили простой ответ на запрос с превышением времени ожидания (с использованием этих настроек):

WebMail.SmtpServer = "smtp.gmail.com";
WebMail.SmtpPort = 465;
WebMail.EnableSsl = true;

Поля «Имя пользователя» и «От» установлены одинаково ([email protected]). Это пример нашей электронной почты, управляемой gmail. Также пароль установлен и правильный.

Ищу ли я здесь не то, заглядывая в SSL?

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

Кроме того, чтобы вы знали наверняка, ошибка сервера фактически является ошибкой метода WebMail.Send.


person VoidKing    schedule 30.10.2012    source источник
comment
какое сообщение отображается с telnet yourIPserver 465 в командной строке?   -  person BrOSs    schedule 30.10.2012
comment
Конечно, просто введите telnet yourIPserver 465 в CMD и сообщите мне ответ. Должно получиться примерно так: 220 test.auto.mySMTPserver.com ESMTP Service (Lotus Domino Release 8.5.3FP2 HF95) ready at Tue, 30 Oct 2012 08:27:31 -0700   -  person BrOSs    schedule 30.10.2012
comment
@BrOSs 'telnet' не распознается как внутренняя или внешняя команда   -  person VoidKing    schedule 30.10.2012
comment
@BrOSs Это то, что он говорит, когда я набираю его   -  person VoidKing    schedule 30.10.2012
comment
@BrOSs Кроме того, я не совсем понимаю, что вы имеете в виду под своим IP-сервером. Вы ведь не имеете в виду smtp.gmail.com?   -  person VoidKing    schedule 30.10.2012
comment
Извините, я предполагал, что у вас есть доступная служба Telnet .. вы можете включить telnet здесь (если вы используете Windows 7). О команде, довольно прямолинейно. Под вашим IP-сервером я имел в виду хост-машину, на которой находится ваш SMTP-сервер.   -  person BrOSs    schedule 30.10.2012
comment
@BrOSs Так вы имеете в виду smtp.gmail.com? Разве это не тот smtp-сервер, который я пытаюсь использовать. Учетная запись, которая настроена для этого, использует что-то вроде этого [email protected], который управляется через Gmail.   -  person VoidKing    schedule 30.10.2012
comment
Да, если Google обрабатывает ваш сервер, попробуйте telnet smtp.gmail.com 465 так .. В любом случае, я думаю, что Gmail работает с портом 587 вместо этого.   -  person BrOSs    schedule 30.10.2012
comment
@BrOSs Действительно? Вчера мы просмотрели этот порт (мой босс знал, куда идти), но, возможно, информация устарела?   -  person VoidKing    schedule 30.10.2012
comment
Что ж, несколько недель назад я использовал сервисы gmail smtp для веб-приложения для предложений интрасети. Все прошло нормально.   -  person BrOSs    schedule 30.10.2012
comment
@BrOSs Ну, когда я подключился к порту 465, командная строка пропала. Когда я подключился к 587, он сказал следующее: 220 mx.google.com ESMTP nd14sm926849obb.14   -  person VoidKing    schedule 30.10.2012
comment
позвольте нам продолжить обсуждение в чате   -  person BrOSs    schedule 30.10.2012
comment
Король, а что, если мы перенесем этот разговор в другое место? Пожалуйста, избегайте расширенных обсуждений в комментариях, черт возьми .. чат защищен брандмауэром, где я сейчас работаю. mailme: brossdmg в Gmail.   -  person BrOSs    schedule 30.10.2012


Ответы (2)


Вам следует изменить свой порт SMTP на порт Gmail. Сейчас Gmail работает с 587 вместо 465.

Вы можете проверить это с помощью telnet smtp.gmail.com 587. Тогда у вас должно получиться что-то вроде этого:

220 test.auto.mySMTPserver.com ESMTP Service (Lotus Domino Release 8.5.3FP2 HF95) ready at Tue, 30 Oct 2012 08:27:31 -0700

Ваш новый код:

WebMail.SmtpServer = "smtp.gmail.com";
WebMail.SmtpPort = 587;
WebMail.EnableSsl = true;

И это все.

person BrOSs    schedule 30.10.2012

Я бы сказал, что в сообщении говорится, что вы не прошли аутентификацию, поэтому вам, вероятно, потребуется отправить имя пользователя / пароль для действительного пользователя на сервере. См. этот вопрос для примера аутентификации на почтовый сервер для отправки.

person ZombieSheep    schedule 30.10.2012
comment
Но разве не для этого предназначены WebMail.UserName, WebMail.Password и WebMail.From? Все это установлено ... - person VoidKing; 30.10.2012
comment
Мне нужно сделать это, это WebMatrix, который немного отличается от необработанного C #. Я имею в виду, что знаю, что могу писать простые файлы .cs в WebMatrix, но я бы не знал, когда и при каких обстоятельствах их вызывать в этом случае, поскольку я новичок в этом материале «настройка ssl и электронной почты» - person VoidKing; 30.10.2012