Назад | Перейти на главную страницу

Как работает SMTP сервер? нужно понимание

Я ищу понимание того, как работает SMTP-сервер.

Например, если я хочу запустить SMTP-сервер в Windows 2008 только для одного явного приложения, которое работает на его веб-сервере, сервере приложений и сервере БД, мне нужно зарегистрировать домен, чтобы отправлять электронные письма из моего домена , если я хочу отправлять электронные письма некоторым пользователям с этого SMTP-сервера?

Нет, вам не нужно регистрироваться. Вы можете установить SMTP-сервер и сразу же начать с него отправку писем. Однако есть несколько вещей, которые вы должны сделать, чтобы вас не пометили как спам:

  1. Используйте статический внешний IP-адрес. Некоторые SBL блокируют электронную почту, приходящую с известного динамического IP-адреса.
  2. Настройка записей SPF DNS
  3. Настройте обратную запись DNS для IP-адреса, с которого сервер отправляет почту

Если вам не нужно получать электронную почту от других людей через ваш 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 ...

Да, вам обязательно нужно зарегистрировать домен, с которого вы будете отправлять электронную почту. Использование адреса отправителя с незарегистрированным доменом предоставит вашим сообщениям первоклассный билет в одну сторону в папку для спама получателя.