Как отправить почту из ASP.NET с IIS6 SMTP на выделенный сервер? - PullRequest
4 голосов
/ 19 сентября 2008

Я пытаюсь настроить выделенный сервер, на котором работает ASP.NET, для отправки почты через локальный SMTP-сервер IIS, но почта застревает в папке «Очередь» и не доставляется.

Я использую этот код на странице .aspx для проверки:

<%@ Page Language="C#" AutoEventWireup="true" %>

<% new System.Net.Mail.SmtpClient("localhost").Send("info@thedomain.com", 
    "jcarrascal@gmail.com", "testing...", "Hello, world.com"); %>    

Затем я добавил следующее в файл Web.config:

<system.net>
  <mailSettings>
    <smtp>
      <network host="localhost"/>
    </smtp>
  </mailSettings>
</system.net>

В диспетчере IIS я изменил следующее в свойствах «Виртуального SMTP-сервера по умолчанию».

General: [X] Enable Logging
Access / Authentication: [X] Windows Integrated Authentication
Access / Relay Restrictions: (o) Only the list below, Granted 127.0.0.1
Delivery / Advanced: Fully qualified domain name = thedomain.com

Наконец, я запускаю средство SMTPDiag.exe, например:

C:\>smtpdiag.exe info@thedomain.com jcarrascal@gmail.com

Searching for Exchange external DNS settings.
Computer name is THEDOMAIN.
Failed to connect to the domain controller. Error: 8007054b

Checking SOA for gmail.com.
Checking external DNS servers.
Checking internal DNS servers.
SOA serial number match: Passed.

Checking local domain records.
Checking MX records using TCP: thedomain.com.
Checking MX records using UDP: thedomain.com.
Both TCP and UDP queries succeeded. Local DNS test passed.

Checking remote domain records.
Checking MX records using TCP: gmail.com.
Checking MX records using UDP: gmail.com.
Both TCP and UDP queries succeeded. Remote DNS test passed.

Checking MX servers listed for jcarrascal@gmail.com.
Connecting to gmail-smtp-in.l.google.com [209.85.199.27] on port 25.
Connecting to the server failed. Error: 10060
Failed to submit mail to gmail-smtp-in.l.google.com.
Connecting to gmail-smtp-in.l.google.com [209.85.199.114] on port 25.
Connecting to the server failed. Error: 10060
Failed to submit mail to gmail-smtp-in.l.google.com.
Connecting to alt2.gmail-smtp-in.l.google.com [209.85.135.27] on port 25.
Connecting to the server failed. Error: 10060
Failed to submit mail to alt2.gmail-smtp-in.l.google.com.
Connecting to alt2.gmail-smtp-in.l.google.com [209.85.135.114] on port 25.
Connecting to the server failed. Error: 10060
Failed to submit mail to alt2.gmail-smtp-in.l.google.com.
Connecting to alt1.gmail-smtp-in.l.google.com [209.85.133.27] on port 25.
Connecting to the server failed. Error: 10060
Failed to submit mail to alt1.gmail-smtp-in.l.google.com.
Connecting to alt2.gmail-smtp-in.l.google.com [74.125.79.27] on port 25.
Connecting to the server failed. Error: 10060
Failed to submit mail to alt2.gmail-smtp-in.l.google.com.
Connecting to alt2.gmail-smtp-in.l.google.com [74.125.79.114] on port 25.
Connecting to the server failed. Error: 10060
Failed to submit mail to alt2.gmail-smtp-in.l.google.com.
Connecting to alt1.gmail-smtp-in.l.google.com [209.85.133.114] on port 25.
Connecting to the server failed. Error: 10060
Failed to submit mail to alt1.gmail-smtp-in.l.google.com.
Connecting to gsmtp183.google.com [64.233.183.27] on port 25.
Connecting to the server failed. Error: 10060
Failed to submit mail to gsmtp183.google.com.
Connecting to gsmtp147.google.com [209.85.147.27] on port 25.
Connecting to the server failed. Error: 10051
Failed to submit mail to gsmtp147.google.com.

Я использую ASP.NET 2.0, Windows 2003 Server и IIS, который поставляется с ним.

Можете ли вы сказать мне, что еще нужно изменить, чтобы решить проблему?

Спасибо


@ mattlant

Это выделенный сервер, поэтому я устанавливаю SMTP вручную.

РЕДАКТИРОВАТЬ: я использую обмен, так что его немного разные, но его называют умным хозяином в обмен, но в обычном SMTP сервисе Конфиг, я думаю, это называется что-то остальное. Не могу вспомнить точно название настройки.

Спасибо, что указали мне на поле Smart host. Почта доставляется сейчас.

В свойствах виртуального SMTP-сервера по умолчанию на вкладке «Доставка» нажмите «Дополнительно» и заполните поле «Умный хост» адресом, предоставленным вашим провайдером. В моем случае (GoDaddy) это был k2smtpout.secureserver.net.

Подробнее здесь: http://help.godaddy.com/article/1283

Ответы [ 3 ]

2 голосов
/ 19 сентября 2008

Я считаю, что в зависимости от объема электронной почты лучше всего просто пересылать почту через SMTP-сервер вашего провайдера. Меньше головных болей. Похоже, что именно здесь у вас возникают проблемы - от вашего SMTP до внешних серверов, а не от asp.net до вашего SMTP.

Просто настройте SMTP-сервер для отправки его вашему провайдеру или настройте asp.net для отправки на него.

РЕДАКТИРОВАТЬ: я использую exchange, так что он немного отличается, но он называется smart host в обмен, но в простом конфигурации службы SMTP я думаю, что это называется что-то еще

Я не могу точно вспомнить название настройки.

0 голосов
/ 19 сентября 2008

два действительно очевидных вопроса (на случай, если они не были рассмотрены) 1. был ли брандмауэр Windows отключен? 2. у вас есть персональный / корпоративный брандмауэр, который не позволяет отправлять вашу почту?

0 голосов
/ 19 сентября 2008

Судя по всему, ваш брандмауэр не выпускает SMTP (TCP-порт 25) из вашей сети.

...