Вы можете использовать
${var == null}
в качестве альтернативы.
Ваши настройки верны . Мы постоянно используем Gmail для отправки почты в наших веб-приложениях. Ваш сервер, вероятно, блокирует исходящий трафик через порт 587. Я хотел бы связаться с вашим хостом и посмотреть, могут ли они помочь, иначе вам понадобится новая почта или новый хост.
Спасибо всем за помощь на этом сайте, а также на форуме приложений Google (хотя этот мне нравится больше) Я наконец собрал все кусочки пазла. По какой-то причине порт 465 и порт 587 не работают. Вот что у меня сработало:
Web.config:
<smtp from="pwretrieve@mydomain.com">
<network host="smtp.gmail.com" password="[password]" port="25"
userName="pwretrieve@mydomain.com"/>
</smtp>
из файла aspx.cs:
SmtpClient mSmtpClient = new SmtpClient();
mSmtpClient.EnableSsl = true;
Еще раз спасибо!
Если ваш веб-хост не позволяет вам отправлять исходящую почту SMTP со своих серверов, это может вызвать эту проблему. Например, GoDaddy позволяет отправлять исходящую почту только через smtpout.secureserver.net с вашего сервера, поэтому любая попытка отправить почту через другой хост (в данном случае smtp.gmail.com) потерпит неудачу. Если ваш интернет-провайдер не блокирует исходящий SMTP (например, Qwest этого не делает), то это будет работать локально.
Проверьте FAQ на своем веб-хосте, чтобы узнать, что они говорят об этом. Большинство хостинговых компаний разрешают исходящий SMTP, но ограничивают его определенным количеством ретрансляций в день, чтобы предотвратить случайное использование для пересылки спама.
Вы правы, что запись MX в вашем домене влияет только на входящую почту. Когда кто-то пытается отправить письмо на адрес you@yourdomain.com, они передают его на SMTP-сервер (скорее всего, тот, который им предоставляет их провайдер), а затем SMTP-сервер просматривает вашу запись MX, чтобы узнать, кто обрабатывает вашу электронную почту. Он разрешится на smtp.gmail.com, так что он будет получать вашу почту, а вы получите ее от них. Когда вы отправляете исходящую почту, она может пройти через кого угодно, поскольку вас интересует только запись MX для целевого домена (куда в конечном итоге попадет почта).
Имеет ли это смысл? Если вам нужны пояснения, я могу найти несколько руководств и других объяснений, которые помогут разобраться в этом.
Возможно, клиент smtp не может получить доступ к серверу smtp (может быть отключен веб-хостом).
Спросите у веб-хоста, есть ли у них конкретный сервер smtp, вам следует использовать для отправки электронной почты.
Если ваша хостинговая компания не отвечает, и если у вас есть другой сервер, на который вы можете отправлять тестовые запросы, попробуйте запросить подключения к другим портам и посмотрите, что произойдет.
У меня был такая же проблема для моей формы. Мой веб-сайт работает на панели управления Plesk. Все, что я сделал, это зашел в свою панель и отключил хостинг электронной почты на своем веб-сервере. После этого моя форма начала отправляться в аккаунт приложений Google. Попробуйте то, что я сделал, я уверен, вы почувствуете разницу.