Как отправлять почту с ASP.NET с помощью IIS6 SMTP на выделенном сервере?

StackOverflow https://stackoverflow.com/questions/97840

  •  01-07-2019
  •  | 
  •  

Вопрос

Я пытаюсь настроить выделенный сервер, который работает 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 вручную.

Редактировать:Я использую exchange, поэтому он немного отличается, но называется smart host в exchange, но в обычной службе SMTP конфигурация, я думаю, называется как-то по-другому .Не могу точно вспомнить название настройки .

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

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

Более подробная информация здесь: http://help.godaddy.com/article/1283

Это было полезно?

Решение

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

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

Редактировать:Я использую exchange, поэтому он немного отличается, но в exchange он называется smart host, но в обычной конфигурации службы SMTP, я думаю, он называется как-то по-другому.

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top