Отправка электронной почты через аккаунт Служб Google работает локально, но не на моем веб-сервере. - PullRequest
8 голосов
/ 24 июня 2009

Связанный:

Отправка электронной почты через C # через учетную запись Google Apps

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

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

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

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

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

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

Ответы [ 6 ]

2 голосов
/ 25 июня 2009

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

1 голос
/ 16 апреля 2010

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

1 голос
/ 26 июня 2009

Благодаря помощи каждого на этом сайте, а также на форуме приложений 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;

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

0 голосов
/ 25 июня 2009

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

0 голосов
/ 24 июня 2009

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

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

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

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

0 голосов
/ 24 июня 2009

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

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

...