如何搭建本地smtp服务器?
一、安装POP3和SMTP服务组件
Windows Server 2003默认情况下是没有安装POP3和SMTP服务组件的,因此要手工添加。
1安装POP3服务组件
以系统管理员身份登录Windows Server 2003 系统。依次进入“控制面板→添加或删除程序→添加/删除Windows组件”,在弹出的“Windows组件向导”对话框中选中“电子邮件服务”选项,点击“详细信息”按钮,可以看到该选项包括两部分内容:POP3服务和POP3服务Web管理。为方便用户远程Web方式管理邮件服务器,建议选中“POP3服务Web管理”。
2安装SMTP服务组件
选中“应用程序服务器”选项,点击“详细信息”按钮,接着在“Internet信息服务(IIS)”选项中查看详细信息,选中“SMTP Service”选项,最后点击“确定”按钮。此外,如果用户需要对邮件服务器进行远程Web管理,一定要选中“万维网服务”中的“远程管理(HTML)”组件。完成以上设置后,点击“下一步”按钮,系统就开始安装配置POP3和SMTP服务了。
二、配置POP3服务器
1创建邮件域
点击“开始→管理工具→POP3服务”,弹出POP3服务控制台窗口。选中左栏中的POP3服务后,点击右栏中的“新域”,弹出“添加域”对话框,接着在“域名”栏中输入邮件服务器的域名,也就是邮件地址“@”后面的部分,如“rtjnet”,最后点击“确定”按钮。其中“rtjnet”为在Internet上注册的域名,并且该域名在DNS服务器中设置了MX邮件交换记录,解析到Windows Server 2003邮件服务器IP地址上。
2创建用户邮箱
选中刚才新建的“rtjnet”域,在右栏中点击“添加邮箱”,弹出添加邮箱对话框,在“邮箱名”栏中输入邮件用户名,然后设置用户密码,最后点击“确定”按钮,完成邮箱的创建。
三、配置SMTP服务器
完成POP3服务器的配置后,就可开始配置SMTP服务器了。点击“开始→程序→管理工具→Internet信息服务(IIS)管理器”,在“IIS管理器”窗口中右键点击“默认SMTP虚拟服务器”选项,在弹出的菜单中选中“属性”,进入“默认SMTP虚拟服务器”窗口,切换到“常规”标签页,在“IP地址”下拉列表框中选中邮件服务器的IP地址即可。点击“确定”按钮,这样一个简单的邮件服务器就架设完成了。
完成以上设置后,用户就可以使用邮件客户端软件连接邮件服务器进行邮件收发工作了。在设置邮件客户端软件的SMTP和POP3服务器地址时,输入邮件服务器的域名“rtjnet”即可。
QQ邮箱POP3和SMTP服务器地址设置如下:\x0d\\x0d\邮箱POP3服务器(端口110)SMTP服务器(端口25)\x0d\qqcompopqqcomsmtpqqcom\x0d\SMTP服务器需要身份验证。\x0d\\x0d\如果是设置POP3和SMTP的SSL加密方式,则端口如下:\x0d\POP3服务器(端口995)\x0d\SMTP服务器(端口465或587)。
邮件无法发送到smtp服务器的解决方法如下:检查SMTP服务器设置、检查邮箱账户和密码、检查收件人地址、检查网络连接。
1、检查SMTP服务器设置
在使用邮件模块发送邮件前,需要设置SMTP服务器地址和端口号。可以通过以下代码进行设置。
2、检查邮箱账户和密码
在进行邮件发送时,需要对发件人的账户进行验证。可以通过以下代码进行验证。
3、检查收件人地址
在进行邮件发送时,需要设置收件人地址。可以通过以下代码进行设置。
4、检查网络连接
如果邮件发送失败,可以尝试检查网络连接是否畅通,并尝试重新发送邮件。5。检查邮件内容格式:在进行邮件发送时,需要设置邮件的主题、正文和附件。可以通过以下代码设置邮件内容。
邮件发送失败的原因:
1、SMTP服务器设置错误:当我们使用邮件模块进行邮件发送时,需要设置SMTP服务器地址和端口号。如果设置错误,会导致邮件发送失败。解决方法是检查SMTP服务器地址和端口号是否正确,并确保连接SMTP服务器的网络是畅通的。
2、账户验证失败:在SMTP服务器发送邮件时,需要对发送者的账户进行验证。如果账户验证失败,则邮件发送会失败。解决方法是检查发送者的账户和密码是否正确,并且确保在发件人账户中开启了SMTP服务。
3、收件人地址错误:如果发送的邮件中包含错误的收件人地址,邮件会发送失败。解决方法是检查收件人地址是否正确或者在收件人地址中使用正确的分隔符进行分隔。
4、网络问题:有时候,邮件发送失败可能是因为网络问题导致的。例如SMTP服务器没有响应或者网络连接中断等。解决方法是检查网络连接是否畅通,并尝试重新发送邮件。
5、邮件内容格式错误:邮件内容包括主题、正文、附件等。如果邮件内容格式错误,则邮件发送会失败。解决方法是检查邮件内容格式是否正确,并确保附件文件存在。
1、HTTP:使用80端口。
HTTP属于超文本传输协议,所有的WWW文件都必须遵守这个标准,HTTP是一个客户端和服务器端请求和应答的标准(TCP),客户端是终端用户,服务器端是网站,通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求。
2、FTP:使用20/21端口。
主要是用来传输文件,比如建站常常用来上传主页或者下载文件进行修改,FTP是一个8位的客户端-服务器协议,能操作任何类型的文件而不需要进一步处理,就像MIME或Unicode一样。但是,FTP有着极高的延时,这意味着,从开始请求到第一次接收需求数据之间的时间,会非常长。
3、SMTP:使用25端口。
SMTP定义了简单邮件传送协议,现在很多邮件服务器都用的是这个协议,用于发送邮件。如常见的免费邮件服务中用的就是这个邮件服务端口。
4、TELNET使用23端口。
Telnet它是一种用于远程登陆的端口,用户可以以自己的身份远程连接到计算机上,通过这种端口可以提供一种基于DOS模式下的通信服务。
扩展资料
按端口号可分为3大类:
(1)公认端口(Well Known Ports):从0到1023,它们紧密绑定(binding)于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯。
(2)注册端口(Registered Ports):从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如:许多系统处理动态端口从1024左右开始。
(3)动态和/或私有端口(Dynamic and/or Private Ports):从49152到65535。理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。但也有例外:SUN的RPC端口从32768开始。
每个TCP报文头部都包含源端口号(source port)和目的端口号(destination port),用于标识和区分源端设备和目的端设备的应用进程。
在TCP/IP协议栈中,源端口号和目的端口号分别与源IP地址和目的IP地址组成套接字(socket),唯一的确定一条TCP连接。
相对于TCP报文,UDP报文只有少量的字段:源端口号、目的端口号、长度、校验和等,各个字段功能和TCP报文相应字段一样。
下面以TCP报文为例说明端口号的作用:
假设PC1向PC2发起Telnet远程连接,其中目的端口号为知名端口号23,源端口号为1028。源端口号没有特别的要求,只需保证该端口号在本机上是唯一的。
PC2收到数据包后,根据目的端口为23判断出该数据包是Telnet数据包,将数据包转发到上层Telnet协议。
—网络端口
HOST:smtp163com
public static string
CreateTimeoutTestMessage(string server)
{
string Success =
"发送成功";
try
{
string _to = "1035092449@qqcom";
string _from =
"young-20@163com";
string _subject = "Using the new SMTP client";
string _body =
@"Using this new feature, you can send an e-mail
message from an application very easily";
MailMessage message = new
MailMessage();
messageFrom = new
MailAddress(_from);
//可以利用MailMessageToAdd方法增加要发送的邮件地址
message To Add (new MailAddress ("652105072@qqcom"));
messageToAdd(new
MailAddress(_to));
messageSubject = _subject;
messageBody = _body;
//添加附件
Attachment a = new
Attachment(@"C:/Users/Administrator/Desktop/smtpclientrar");
messageAttachmentsAdd(a);
//设置邮箱的地址或IP
SmtpClient client = new
SmtpClient(server);
//设置邮箱端口,pop3端口:110, smtp端口是:25
clientPort = 25;
//设置超时时间
clientTimeout = 9999;
//要输入邮箱用户名与密码
clientCredentials = new NetworkCredential("young-20@163com", "");
clientSend(message);
}
catch (Exception ex)
{
Success = exToString();
}
return Success;
}
[c-sharp] view
plaincopyprint
public static string CreateTimeoutTestMessage(string server)
{
string Success = "发送成功";
try
{
string _to = "1035092449@qqcom";
string _from = "young-20@163com";
string _subject = "Using the new SMTP client";
string _body = @"Using this new feature, you can send an e-mail message from an application very easily";
MailMessage message = new MailMessage();
messageFrom = new MailAddress(_from);
//可以利用MailMessageToAdd方法增加要发送的邮件地址
message To Add (new MailAddress ("652105072@qqcom"));
messageToAdd(new MailAddress(_to));
messageSubject = _subject;
messageBody = _body;
//添加附件
Attachment a = new Attachment(@"C:/Users/Administrator/Desktop/smtpclientrar");
messageAttachmentsAdd(a);
//设置邮箱的地址或IP
SmtpClient client = new SmtpClient(server);
//设置邮箱端口,pop3端口:110, smtp端口是:25
clientPort = 25;
//设置超时时间
clientTimeout = 9999;
//要输入邮箱用户名与密码
clientCredentials = new NetworkCredential("young-20@163com", "");
clientSend(message);
}
catch (Exception ex)
{
Success = exToString();
}
return Success;
}
下面我们通过查看一个常见的情形来说明SMTP的基本操作。假设Alice给Bob发送一个简单的ASCII文本邮件消息:
●Alice调用自己的电子邮件用户代理,给出Bob的电子邮件地址,写好邮件内容,然后让用户代理发送本邮件消息。
●Alice的用户代理把该邮件消息发送到她的邮件服务器中,由邮件服务器把该消息排入某个消息队列中。
●运行在Alice的邮件服务器上的SMTP客户端看到消息队列中的这个邮件消息后,打开一个到运行在Bob的邮件服务器主机上的SMTP服务器端的TCP连接。
●经过最初的一些SMTP握手之后,SMTP客户把A1ice的邮件消息发送到TCP连接上。
●在Bob的邮件服务器主机上,SMTP服务器收到这个邮件消息后,把这个消息投递到Bob的邮箱中。
●Bob在方便的时候调用自己的电子邮件用户代理阅读该邮件消息。
需注意的是,SMTP通常不使用中间的邮件服务器主机中转邮件,即便源端和目的端邮件服务器主机位于地球上相反的位置也一样。假设Aiice的邮件服务器主机在香港,Bob的邮件服务器主机在阿拉巴马州,那么所建立的TCP连接将是这两台服务器主机之间的连接。具体地说,如果Bob的邮件服务器不工作了,那么A1ice发给Bob的邮件消息将存留在Alice的邮件服务器中等待新的尝试,而不会存放到某个中间的邮件服务器中。
下面查看SMTP把邮件消息从发送端邮件服务器传送到接收端邮件服务器的具体过程:
我们将看到,SMTP协议与人们用于面对面交互的礼仪之间有许多相似之处。首先,运行在发送端邮件服务器主机上的SMTP客户,发起建立一个到运行在接收端邮件服务器主机上的SMTP服务器端口号25之间的TCP连接。如果接收邮件服务器当前不在工作,SMTP客户就等待一段时间后再尝试建立该连接。这个连接建立之后,SMTP客户和服务器先执行一些应用层握手操作。就像人们在转手东西之前往往先自我介绍那样,SMTP客户和服务器也在传送信息之前先自我介绍一下。在这个SMTP握手阶段,SMTP客户向服务器分别指出发信人和收信人的电子邮件地址。彼此自我介绍完毕之后,客户发出邮件消息。SMTP可以指望由TCP提供的可靠数据传输服务把该消息无错地传送到服务器。如果客户还有其他邮件消息需发送到同一个服务器,它就在同一个TCP连接上重复上述过程;否则,它就指示TCP关闭该连接。
与HTTP的比较
我们简单地比较一下SMTP和HTTP。这两个协议都是用于从一台主机向另一台主机传送文件;HTTP用于从web服务器向Web用户代理(即浏览器)传送文件(或对象),SMTP用于从一个邮件服务器向另一个邮件服务器传送文件(也就是电子邮件消息)。在传送文件时,SMTP和持久HTTP都使用持久连接。可见,这两个协议具有一些共同的特征,不过它们之间的差别也是显著的。首先,HTTP基本上是一个内拉式协议(pull protocol)——有人把信息上传到web服务器中,用户则在方便的时候使用HTTP把这些信息从服务器上拉过来。更确切地说,HTTP连接是由想要接收文件的主机发起的。SMTP则基本上是一个外推式协议(push Protocol)——发送端邮件服务器把文件推送给接收端邮件服务器。更确切地说,SMTP连接是由想要发送文件的主机发起的。
SMTP和HTTP的第二个重要差别是,SMTP要求包括信体部分在内的每个邮件消息都是7位ASCII文本格式。
0条评论