Вопрос по c#, .net, google-apps, email – Отправка электронной почты через аккаунт Служб Google работает локально, но не на моем веб-сервере.

8
Related:

Send Email via C# through Google Apps account

Мой вопрос такой же, поэтому я реализовалРешение Куисти следующее. Беда в том, что он прекрасно работает на моем ноутбуке разработчика, но при портировании на веб-сервер время ожидания без объяснения причин.

Мой конфиг SMTP находится в моемweb.config файл. Я сделал моды, основываясь на ответе Койстья:

<mailSettings>
    **Changed**
      <smtp from="[email protected]">
        <network host="smtp.gmail.com" password="[password]" port="587" 
          userName="[email protected]"/>
      </smtp>
    **Original**
      <!--<smtp from="[email protected]">
        <network host="mail.domain.com" password="[password]" port="25"
          userName="[email protected]"/>
      </smtp>-->
</mailSettings>

Мой код .Net C # (до и после удаления):

  SmtpClient mSmtpClient = new SmtpClient();
  mSmtpClient.EnableSsl = true;
  mSmtpClient.Send(message);

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

Можете ли вы добавить ссылку на предыдущий вопрос, на который вы ссылаетесь? Tad Donaghe
Отредактировано, чтобы включить ссылку на предыдущий вопрос & amp; ответ John Rasch

Ваш Ответ

6   ответов
-1

Возможно, клиент SMTP не может получить доступ к серверу SMTP (может быть отключен веб-хостом).

Спросите веб-хостинга, есть ли у них конкретный SMTP-сервер, который вы должны использовать для отправки электронных писем.

Я должен добавить, что сгенерированное электронное письмо c # работало ТОЛЬКО, пока мы не переключились на приложения Google.
Я ценю это предложение, но сам едва понимаю проблему. Если электронная почта нашего домена будет отправлена в Google, какую роль будет играть SMTP-сервер нашего веб-хостинга? Мне кажется, его уже нет. Решением Kioysta было указать на smtp.gmail.com. ???
Я только что прочитал ответ Джоша Келли на похожий вопрос и понял, что в этом так много всего, что я в неведении. Он говорит, что «записи MX влияют только на получение почты. Вы можете настроить хост sendmail для отправки почты без какого-либо влияния на ваши записи MX или полученную почту. & Quot; Когда я переключил электронную почту нашей компании на приложения Google, я точно следовал их указаниям. Это все, что я знаю. У меня нет КЛЮЧЕВ, как что-то еще делать с DNS или как настроить SMTP-сервер. Если кто-то захочет мне помочь с этим, я покажу вам, что именно в наших настройках DNS.
1

У меня была такая же проблема для моей формы. Мой сайт работает на панели управления Plesk. Все, что я делал, это входил в мою панель и отключал хостинг электронной почты на моем веб-сервере. После этого моя форма начала отправляться в аккаунт Google Apps. Попробуйте то, что я сделал, я уверен, что вы получите разницу.

1

Спасибо всем за помощь на этом сайте, а также на форуме приложений Google (хотя мне этот нравится больше), я наконец собрал все кусочки головоломки. По какой-либо причине порт 465 и порт 587 не будут работать. Вот что сработало для меня:

Web.config:

  <smtp from="[email protected]">
    <network host="smtp.gmail.com" password="[password]" port="25" 
      userName="[email protected]"/>
  </smtp>

из файла aspx.cs:

SmtpClient mSmtpClient = new SmtpClient();
mSmtpClient.EnableSsl = true;

Еще раз спасибо!

-1

Если ваш веб-хостинг не позволяет отправлять исходящую SMTP-почту со своих серверов, это может вызвать эту проблему. Например, GoDaddy позволяет только отправлять исходящую почту через smtpout.secureserver.net с вашего сервера, поэтому любая попытка отправить почту через другой хост (в данном случае smtp.gmail.com) будет неудачной. Если ваш интернет-провайдер не блокирует исходящий SMTP (как, например, Qwest), тогда это будет работать локально.

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

Вы правы, что запись MX в вашем домене влияет только на входящую почту. Когда кто-то пытается отправить письмо на адрес [email protected], он передает его SMTP-серверу (скорее всего, тому, который ему предоставляет провайдер), а затем SMTP-сервер просматривает вашу запись MX, чтобы узнать, кто обрабатывает вашу электронную почту. Он разрешается на smtp.gmail.com, чтобы те, кто получит вашу почту, а вы ее получили. Когда вы отправляете исходящую почту, она может пройти через кого угодно, так как вы заботитесь только о записи MX для конечного домена (где почта в конечном итоге окажется).

Имеет ли это смысл? Если вам нужны некоторые разъяснения, я могу найти некоторые учебные пособия и другие объяснения, которые помогут разобраться в этом.

Могу ли я получить объяснение понижения?
2

Ваши настройки верны. Мы используем Gmail для отправки почты все время в наших веб-приложениях. Ваш сервер, вероятно, блокирует исходящий трафик через порт 587. Я хотел бы связаться с вашим хостом и посмотреть, могут ли они помочь, в противном случае вам понадобится новая почта или новый хост.

0

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

Похожие вопросы