Как отправлять почту с ASP.NET с помощью IIS6 SMTP на выделенном сервере?
Вопрос
Я пытаюсь настроить выделенный сервер, который работает 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.есть ли у вас личный / корпоративный брандмауэр, который предотвращает отправку вашей почты?