我想了解 SMTP 服务器的工作原理。
例如,如果我希望在 Windows 2008 上为一个明确的应用程序运行 SMTP 服务器,该应用程序在其 Web 服务器、应用程序服务器和 DB 服务器上运行,如果我希望从该 SMTP 服务器向某些用户发送电子邮件,我是否需要注册域以便从我的域发送电子邮件?
答案1
不,您不需要注册。您可以安装 SMTP 服务器并立即开始发送电子邮件。不过,您应该采取一些措施来避免被标记为垃圾邮件:
- 使用静态外部 IP 地址。某些 SBL 会阻止来自已知动态 IP 地址的电子邮件
- 设置 SPF DNS 记录
- 为服务器发送邮件的 IP 地址设置反向 DNS 条目
答案2
如果你不需要通过你的 smtp 服务器接收别人的邮件,你不需要注册你的域名。如果你只需要发送电子邮件,你可以将你的 smtp 服务器用作你的应用服务器。但你需要为你的 smtp 服务器配置有关应用服务器的身份验证和中继。
关于身份验证,如果您的 smtp 服务器和应用程序是不同的机器,您配置为允许匿名登录,除非您的服务器在同一个域中。
关于中继,您配置为仅允许您的应用程序服务器可以中继到您的 smtp 服务器。
设置身份验证和中继后,您可以使用 cdo 对象编写代码来发送电子邮件
以下是通过 smtp 服务器发送电子邮件的示例 asp 代码。
<!--
'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 = "[email protected]"
.From = "[email protected]"
.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 对象...
答案3
是的,您绝对需要注册发送电子邮件的域名。使用未注册域名的发件人地址将使您的邮件成为收件人垃圾邮件文件夹的一等单程票。