Я ищу понимание того, как работает SMTP-сервер.
Например, если я хочу запустить SMTP-сервер в Windows 2008 только для одного явного приложения, которое работает на его веб-сервере, сервере приложений и сервере БД, мне нужно зарегистрировать домен, чтобы отправлять электронные письма из моего домена , если я хочу отправлять электронные письма некоторым пользователям с этого SMTP-сервера?
Нет, вам не нужно регистрироваться. Вы можете установить SMTP-сервер и сразу же начать с него отправку писем. Однако есть несколько вещей, которые вы должны сделать, чтобы вас не пометили как спам:
Если вам не нужно получать электронную почту от других людей через ваш SMTP-сервер, вам не нужно регистрировать свой домен. Если вам нужно только отправить электронную почту, вы можете использовать свой smtp-сервер в качестве сервера приложений. но вам необходимо настроить свой SMTP-сервер на аутентификацию и ретрансляцию для вашего сервера приложений.
Что касается аутентификации, если ваш smtp-сервер и приложение являются разными машинами, вы конфигурируете, чтобы разрешить анонимный вход, за исключением того, что ваши серверы находятся в одном домене.
Что касается реле, вы настраиваете так, чтобы только ваш сервер приложений мог ретранслировать на ваш SMTP-сервер.
после настройки аутентификации и ретрансляции вы пишете код, используя объект cdo для отправки электронной почты
как показано ниже, пример кода asp для отправки электронной почты сервером smtp.
<!--
'Sending SMTP mail via port 25 using CDOSYS
'This ASP page uses CDOSYS to send SMTP mail using port 25 of the SMTP server that is set. The e-mail delivery is handled by the SMTP server that is set in the configuration object.
-->
<%@ Language=VBScript %>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<BODY>
<%
' send by connecting to port 25 of the SMTP server
Dim iMsg
Dim iConf
Dim Flds
Dim strHTML
Dim strSmartHost
Const cdoSendUsingPort = 2
StrSmartHost = "mail.example.com"
set iMsg = CreateObject("CDO.Message")
set iConf = CreateObject("CDO.Configuration")
Set Flds = iConf.Fields
' set the CDOSYS configuration fields to use port 25 on the SMTP server
With Flds
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoSendUsingPort
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strSmartHost
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10
.Update
End With
' build HTML for message body
strHTML = "<HTML>"
strHTML = strHTML & "<HEAD>"
strHTML = strHTML & "<BODY>"
strHTML = strHTML & "<b> This is the test HTML message body</b></br>"
strHTML = strHTML & "</BODY>"
strHTML = strHTML & "</HTML>"
' apply the settings to the message
With iMsg
Set .Configuration = iConf
.To = "nrnoble@example.com"
.From = "nrnoble@example.com"
.Subject = "This is a test CDOSYS message (Sent via Port 25)"
.HTMLBody = strHTML
.Send
End With
' cleanup of variables
Set iMsg = Nothing
Set iConf = Nothing
Set Flds = Nothing
%>
<P> </P>
</BODY>
</HTML>
вы также можете использовать код asp.net. поиск по объекту CDO ...
Да, вам обязательно нужно зарегистрировать домен, с которого вы будете отправлять электронную почту. Использование адреса отправителя с незарегистрированным доменом предоставит вашим сообщениям первоклассный билет в одну сторону в папку для спама получателя.