`

用 Apache James 搭建邮件服务器来收发邮件实践(一)

阅读更多

       Apache James 简称 James, 是 Java Apache Mail Enterprise Server的缩写。James 是100%基于Java的电子邮件服务器。它是一种独立的邮件服务器,并提供了一个完整的电子邮件解决方案,用来收、发电子邮件。

 

       本文不赘述James服务器的参数细节,这个以后有机会再详细讨论,这里先从服务器搭建开始,用搭建的服务器收、发电子邮件来熟悉一下Apache James。本人也是新手,希望能得到各位高手的指点,使大家能悟到进阶的方向。

 

       开始之前,先声明一下本文操作的系统环境:

       1. JDK 6u10b

       2. JMail API v1.4.2

       3. JAF API v1.1(JavaBean Activation Framework)

       4. Apache James 2.3.1

       5. Eclipse 3.4 for J2EE Developers

       6. Windows 2000 Server sp4

 

    

       

       1。请下载安装JDK,并设置好其环境变量:JAVA_HOME=…… 、PATH=…… 、CLASSPATH=…… Eclipse 3.4 是目前的最新版本,可以从http://www.eclipse.org/下载。

      

       2。请下载JMail API、JAF API,可以在www.java.sun.com找到他们,找不到也不要紧,本文附件示例代码免费提供一份(^_^)。

 

       3。Apache James 的官方网站为:http://james.apache.org/,当前 Server 的最新版为 2.3.1版. 安装非常简单,下载后得到james-binary-2.3.1.zip 文件,解压后即可。这里假设解压到D盘(D:\james-2.3.1),目录结构如下:

      

       D:\james-2.3.1

               |--- apps

               |--- bin

               |

       …………

 

       4。启动 James 服务器

       双击或在命令行下执行D:\james-2.3.1\bin 目录下的 run.bat文件,即可启动 James 服务器。

 

       启动后能在控制台看到如下信息,说明启动成功:

Using PHOENIX_HOME: D:\james-2.3.1 
Using PHOENIX_TMPDIR: D:\james-2.3.1\temp 
Using JAVA_HOME: D:\Java\jdk1.6.0_10 

Phoenix 4.2 

James Mail Server 2.3.1 
Remote Manager Service started plain:4555 
POP3 Service started plain:110 
SMTP Service started plain:25 
NNTP Service started plain:119 
FetchMail Disabled

   

      

       要关闭 James 服务,请使用 Ctrl + C

 

       说明:启动前请确保您的JDK环境变量如JAVA_HOME等已经设置好;James 启动时,其SMTP 服务默认在 25 端口启动,POP3 服务默认在 110 端口启动, NNTP 服务默认在 119 端口启动, 请确保这些端口未被占用。比如本系统下就已经安装了Microsoft的 SMTP 服务,造成 James无法启动,解决方法为:开始--->设置--->控制面板--->管理工具--->服务,打开后找到“Simple Mail Transport Protocol(SMTP)”服务项,关闭即可。

 

     

       5。配置服务

       服务器启动后会在本机配置一个默认的服务,这可以用来在本机上本服务器范围内收发邮件,但是邮件发不到163等外网邮箱。我们这里关注的重点就是配置一个能发到外网如163这样的邮箱的邮件,这样才有价值。不过由于本人是在本机上测试,一时不能获取公司的域名参数,无法测试接收外网邮箱(如163)的邮件,见晾,不过做法都是一样的,至少我们可以向外网邮箱发送邮件,局域网内可以收、发邮件。

      

        打开D:\james-2.3.1\apps\james\SAR-INF 下的 config.xml 文件,初次启动James之前,不会有这个文件,只有当James服务启动一次之后才自动构件该文件。

      

        找到

…… 
<postmaster>Postmaster@localhost</postmaster> 
…… 
<servernames autodetect="true" autodetectIP="true"> 
	<servername>localhost</servername> 
</servernames> 
…… 

  

  

        把localhost该成你自己想要的邮箱域名, 把自动探测IP属性设置为“false”这里假设改成 zhaipuhong.com 如果开了一个帐号 zph ,那么他的邮件地址就是 zph@zhaipuhong.com (^_^)修改结果如下:

 

…… 
<postmaster>Postmaster@zhaipuhong.com</postmaster> 
…… 
<servernames autodetect="false" autodetectIP="false"> 
	<servername>zhaipuhong.com</servername> 
</servernames> 
……

   

        找到

<mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor"> 
	<processor> relay-denied </processor> 
	<notice>550 - Requested action not taken: relaying denied</notice> 
</mailet>

   

        将其注释,结果如下:

<!--mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor"> 
	<processor> relay-denied </processor> 
	<notice>550 - Requested action not taken: relaying denied</notice> 
</mailet-->

    

         找到下面元素,去掉其注释

<authRequired>true</authRequired>

  

 

         这样邮箱访问需要帐号验证,你不希望别人用你的帐号收发消息吧……^_^

        

         如此,James服务配置已经完成。

 

 

        6。创建邮件帐号

        创建邮件帐号后,就可以用来收发邮件了。James的账号管理是通过基于Telnet客户机的远程管理器,这点颇为不爽,尤其是我的操作系统下的命令行控制台是不显示telnet命令输入字符的,经常出错。

 

        现在进入命令行控制台,在telnet localhsot 4555 进入James管理器,操作如下:

C:\Documents and Settings\db2admin>telnet localhost 4555 

  

 

        将进入

JAMES Remote Administration Tool 2.3.1 Please enter your login and password Login id:

   

 

        默认的登陆id 为root 密码也为 root ,登陆成功后结果如下:

JAMES Remote Administration Tool 2.3.1 
Please enter your login and password 
Login id: 
Password: 
Welcome root. HELP for a list of commands  

 

       创建新用户的命令是:adduser username password

    这里创建了两个账户来作为演示使用: zhaipuhong/zhangpuhong ;      zph/zph

 

      说明:你可以输入help来获取命令帮助

help display this help 显示帮助信息 
listusers display existing accounts 显示现有账户 
countusers display the number of existing accounts 显示现有账户数量 
adduser [username] [password] add a new user 添加一个新用户 
verify [username] verify if specified user exist 核实指定用户是否存在 
deluser [username] delete existing user 删除存在的用户 
setpassword [username] [password] sets a user's password 设置用户密码 
setalias [user] [alias] locally forwards all email for 'user' to 'alias' 设置邮箱别名 
showalias [username] shows a user's current email alias 显示别名 
unsetalias [user] unsets an alias for 'user' 删除用户别名 
setforwarding [username] [emailaddress] forwards a user's email to another email address 转发用户的电子邮件地址到另一个电子邮件地址 
showforwarding [username] shows a user's current email forwarding 显示用户的当前邮件转发 
unsetforwarding [username] emoves a forward 删除转发 
user [repositoryname] change to another user repository 改变另一个用户库 
shutdown kills the current JVM (convenient when James is run as a daemon)关闭当前的服务 
quit close connection 关闭连接

  

 

 

 

      账号创建成功后,使用quit退出管理器。现在我们可以开始部署我们的JMail应用了。

 

 

      7。用James收发邮件

      现在我们来写两个简单的程序来体验一下如何使用James收发邮件。请注意,示例程序是通用的。关于如何用JMail API收发邮件,这里不详细介绍,如果还没有接触过请参考一下我之前的文章:

      http://zhaipuhong.iteye.com/admin/blogs/213005

     

      关于接受邮件部分,我们在代码中通过注释来描述。另外我们来回忆一下上述步骤配置James服务器的参数:

      1。smtp 服务器:192.168.1.98或者localhost     192.168.1.98是我的局域网IP,由于我James服务就装在我的机器上,所以我可以用localhost

      2。两个邮件帐号:zhaipuhong/zhaipuhong   对应邮箱地址: zhaipuhong@zhaipuhong.com

                                zph/zph                            对应邮箱地址: zph@zhaipuhong.com

      注意:邮箱域名我们配置的是zhaipuhong.com

 

      示例程序:

 

package com.zhaipuhong.j2ee.jmail;

import java.io.IOException;
import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeUtility;

public class HelloJMail {
	
	//发送邮件
	public static void sendMail() {
		//String host = "192.168.1.98"; // 指定的smtp服务器,本机的局域网IP
		String host = "localhost"; // 本机smtp服务器
		//String host = "smtp.163.com"; // 163的smtp服务器
		String from = "zhaipuhong@zhaipuhong.com"; // 邮件发送人的邮件地址
		String to = "zph@zhaipuhong.com"; // 邮件接收人的邮件地址
		final String username = "zhaipuhong";  //发件人的邮件帐户
		final String password = "zhaipuhong";   //发件人的邮件密码

		// 创建Properties 对象
		Properties props = System.getProperties();

		// 添加smtp服务器属性
		props.put("mail.smtp.host", host);
		props.put("mail.smtp.auth", "true");

		// 创建邮件会话
		Session session = Session.getDefaultInstance(props, new Authenticator(){
			@Override
			public PasswordAuthentication getPasswordAuthentication() {
				return new PasswordAuthentication(username, password);
			}
			
		});

		try {
			// 定义邮件信息
			MimeMessage message = new MimeMessage(session);
			message.setFrom(new InternetAddress(from));
			message.addRecipient(Message.RecipientType.TO, new InternetAddress(
					to));
			//message.setSubject(transferChinese("我有自己的邮件服务器了"));
			message.setSubject("I hava my own mail server");
			message.setText("From now, you have your own mail server, congratulation!");

			// 发送消息
			session.getTransport("smtp").send(message);  
			//Transport.send(message); //也可以这样创建Transport对象发送
			System.out.println("SendMail Process Over!");

		} catch (MessagingException e) {
			e.printStackTrace();
		}
	}
	
	//接受邮件
	public static void getMail(){
		String host = "localhost";
	    final String username = "zph";
		final String password = "zph";

		// 创建Properties 对象
	    Properties props = new Properties();

		// 创建邮件会话
		Session session = Session.getDefaultInstance(props, new Authenticator(){
			@Override
			public PasswordAuthentication getPasswordAuthentication() {
				return new PasswordAuthentication(username, password);
			}
			
		});

	    
		try {
			// 获取邮箱的pop3存储
			Store store = session.getStore("pop3");
			store.connect(host, username, password);

	        // 获取inbox文件
		    Folder folder = store.getFolder("INBOX");
		    folder.open(Folder.READ_ONLY);  //打开,打开后才能读取邮件信息

		    // 获取邮件消息
		    Message message[] = folder.getMessages();

		    for (int i=0, n=message.length; i<n; i++) {
		    	System.out.println(i + ": " + message[i].getFrom()[0]
		    	                               + "\t" + message[i].getSubject());
		    	try {
					message[i].writeTo(System.out);
				} catch (IOException e) {
					e.printStackTrace();
				}

		    }

		    // 关闭资源
		    folder.close(false);
		    store.close();
		    
		} catch (MessagingException e) {
			e.printStackTrace();
		}
		
		System.out.println("GetMail Process Over!");

	}
	
	//邮件主题中文字符转换
	public static String transferChinese(String strText){
		try{
			strText = MimeUtility.encodeText(new String(strText.getBytes(), "GB2312"), "GB2312", "B");
		}catch(Exception ex){
			ex.printStackTrace();
		}
		return strText;
	}

	public static void main(String[] args) {
		HelloJMail.sendMail();
		//HelloJMail.getMail();
	}

}

  

 

 

 

      说明: 执行测试时,先执行发送,在main方法中注释掉邮件接受方法调用,等待片刻,再注释掉邮件发送方法调用,执行邮件接受方法调用。因为就算163这样优秀的企业级邮箱也不可能瞬间就能收到发送的邮件。

      在邮件发送方法中:sendMail(), 可以尝试一下又本邮件服务器向163邮箱发送邮件,如果想通过163邮件服务器想本地发送邮件,你需要配置DSN。

  

       以下为本机接收James邮件服务器提供服务的邮件结果:

 

0: zhaipuhong@zhaipuhong.com	I hava my own mail server
Return-Path: <zhaipuhong@zhaipuhong.com>
Delivered-To: zph@zhaipuhong.com
Received: from 127.0.0.1 ([127.0.0.1])
          by ZPH (JAMES SMTP Server 2.3.1) with SMTP ID 693
          for <zph@zhaipuhong.com>;
          Wed, 9 Jul 2008 19:58:38 +0800 (CST)
Date: Wed, 9 Jul 2008 19:58:38 +0800 (CST)
From: zhaipuhong@zhaipuhong.com
To: zph@zhaipuhong.com
Message-ID: <11627000.01215604718796.JavaMail.db2admin@ZPH>
Subject: I hava my own mail server
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

From now, you have your own mail server, congratulation!

  

 

 

       从上面的结果可以看出,该邮件是由zhaipuhong@zhaipuhong.com 发给 zph@zhaipuhong.com 的。

     

       多发几封电子邮件,就会发现,James 的邮件接收是一个栈结构,最近收到的邮件编号为0,依次类推……

  

 

 

  • practice.rar (370.3 KB)
  • 描述: 项目的示例代码
  • 下载次数: 2206
  • config.rar (14.7 KB)
  • 描述: James 的配置文件,可以直接替换使用
  • 下载次数: 1332
分享到:
评论
21 楼 haiter 2008-09-01  
按照你的配置文件修改方法,对外发邮件没有报错,但sina.com还是收不到邮件。
20 楼 zhaipuhong 2008-08-31  
Wallian_hua,你的163,126邮箱是新注册或者注册不久的,你换个时间长一点的163,126的邮箱试试。我们在做JMail发送邮件的测试中也发现了这个问题,我的博客关于JMail发送邮件的讨论中有提到这个问题。放心,这个不是James的问题。问题是不是网易对新注册的邮箱在“一段”时间内做了安全限制,这个具体我们也没有去深究调查。
19 楼 Wallian_hua 2008-08-30  
我想问一下。 为什么我用james发外网邮件,提示成功了。。好象126,163。但是我上这些邮箱就是收不到。。。为什么??
18 楼 zhaipuhong 2008-08-26  
test@A 和 test@B 一定是可以向test@163.com, test@sina.com(如果你有注册这两个账户),而test@163.com, test@sina.com 是不能向test@A 和 test@B发送邮件的,什么原因呢?建议你了解一下dns和网络通信方面的知识或许就明白了。
17 楼 hertzwang1 2008-08-26  
大家有没有测试过?
16 楼 hertzwang1 2008-08-26  
JAMES可以给不同域名的用户发送邮件吗?我测试局域网内两台机器都装了james server,互相ping 机器名都能ping通,但是为什么不能test@A 发送到test@B ,提示验证错误,为什么呢?

其实这个测试不是目的,主要是想知道james是否能给不同域名的邮箱发送邮件
15 楼 snake_liu 2008-08-21  


    * What's New?
    * Signed in as ammen2008
    * Inbox
    * Settings
    * Help
    * Sign Out

delicious

    * Home
    * Bookmarks
          o My Bookmarks
          o Popular
          o Recent
          o Look up a URL
    * People
          o My Network
          o Go to a User
    * Tags
          o My Tags
          o My Subscriptions
          o Explore

choose a type

    * Search Delicious
    * My bookmarks
    * My Network's bookmarks
    * Everyone's bookmarks

ammen2008's Settings

    * Save a new bookmark

    * ammen2008
    *
          o Settings

Add ammen2008 to your Network?
OK
Cancel
What is a Network? HIDE

Your network connects you to other Delicious users - friends, family, even new people you run across while exploring Delicious. You can add people to your network and keep track of their latest bookmarks right here. And when you save new bookmarks, you can share them with people in your network simply by clicking on a username.

Learn more about using your network.

Settings
Account

Edit Account Info
    Add or update the email address associated with your account.
Change password
    Give your Delicious account a new password.
Create Public Profile
    Put your name and a link to your website on your bookmarks page.
Delete Account
    Erase your username and all your bookmarks from Delicious.

Bookmarks

Import / Upload Bookmarks
    Transfer a copy of the bookmarks inside your browser.
Export / Backup Bookmarks
    Download a copy of your bookmarks for safe-keeping or to transfer into your browser.
RSS Feeds Rights/License
    Put a Creative Commons or public domain license on your bookmark's RSS feeds.
Facebook Application
    Enhance your Facebook account with content and notifications from your bookmarks.

People

Edit Network
    Add and remove users to your network.
Edit Network Bundles
    Create groups of people from your network.
Set Network Privacy
    Hide the contents of your network from other people.

Tags

Rename Tags
    Revise your tag list by renaming tags.
Delete Tags
    Clean up your tag list by deleting unwanted tags.
Edit Tag Bundles
    Organizing your tag list by grouping individual tags into bundles.
Edit Tag Descriptions
    Add or remove a text description to your tag pages.
Edit Subscriptions
    Add and remove tag subscriptions.
Edit Subscription Bundles
    Organize your subscription list by grouping subscriptions into bundles.

Blogging

Network Badges
    Show your readers that you are a member of Delicious and give them an easy way to add you to their network.
Link Rolls
    Display a list of your recent Delicious bookmarks as part of your website.
Tag Rolls
    Display a cloud or list of your Delicious tags as part of your website.
Blog Posting
    Experimental feature that can automatically post entries to your blog every day containing your latest links.

About

This is where you can make changes to your account, manage your bookmarks and tags, edit your social options, and integrate Delicious with your blog or website. There are a lot of choices here, but you don't need to worry about the ones in which you aren't interested.

Looking for something else, like changing your username, reinstalling the Delicious buttons, or deleting all your bookmarks?
Check out the FAQs.
What's new?

    * delicious
    * about
    * blog
    * terms of service
    * privacy policy
    * copyright policy
    * forums
    * support

14 楼 zhaipuhong 2008-08-21  
carrot "根本不需要smtp认证都可以发邮件"

确实是可以的,不是没有测试,是感觉没有认证机制的邮件服务器在企业应用中仿佛没有什么存在的价值,不知道,你有何高见!
13 楼 carrot 2008-08-18  
试用了一下, 但是SMTP认证不起作用, 根本不需要smtp认证都可以发邮件,
楼主,是否有测试 ?
12 楼 zhaipuhong 2008-08-09  
lsk,你的这个问题我没有遇到,我示例中也没遇到这中情况,但是我知道会发生你说的这种情况的可能。

我早网上找到一点资料,你看看合不合用:

该问题是由于反垃圾邮件软件引起的,已经和sina 确认过,他们最近部署了一套反垃圾邮件的系统

在默认条件下,邮件服务器在发出helo命令与远端的邮件服务
器通过25端口建立会话时还会送出自己的FQDN名字。目前流行的一
些反垃圾邮件软件可能会通过邮件服务器送出的FQDN名字对其
进行反向解析,对于反向解析失败的连接将断开该连接。

反向解析失败的原因如下:

在国内,很多管理员在做域名解析时没严格按要求做,认为通了就行。建议的做法是:对域名abc.com要做这些解析(根据需要增减)
1、主机A记录abc.com
2、主机A记录mail.abc.com
3、主机A记录www.abc.com
4、主机A记录ftp.abc.com
5、abc.com 到 mail.abc.com的MX记录
6、反向解析记录
  很多人在做邮件服务器时会忘掉做MX记录和反向解析记录,abc.com和mail.abc.com不是同一台主机的话,忘了MX记录会出很多这样那样的问题,过后在解决故障的过程中把它加上。但愿意做反向解析的管理员是少之又少,在国外,很多UNIX主机会检查你发邮件时使用的域名,如果反向解析不通,你的邮件就会被“咔嚓”。
  那么我们做了这些解析是不是发邮件给新浪、网易、搜狐、163.net和263就没问题了?当然不是!!!!
  用新浪来说吧,新浪的邮件是两套系统:收费和免费,两套系统的MX地址也不一样。免费的后缀为@sina.com,收费的为@vip.sina.com。免费邮件系统除了在邮箱容量上的限制,还会在邮件数目做做出限制:即在一段时间范围内,如果从同一IP发到新浪免费邮箱的邮件数量超过了一定的数目限制,该IP地址将会被免费邮件系统封锁,封锁时间内就无法发送邮件到新浪免费邮件系统。
  大概过15-20分钟之后,如果该IP地址没有再往它那发送邮件,该IP地址将会自动从IP地址列表中删除。另:这个问题是在8月初总结的,现在新浪的收费邮件系统有没有这个规则没问过新浪。
  如果你的IP在规定的时间内没有解除封锁,那就边哭边给新浪的管理员打电话吧,给他说:大哥,我求你了,你就当我是个屁,把我放了吧……
  这个规则不仅新浪有,搜狐、163、263等都有。这是一个防止垃圾邮件的好方法,但也造成邮件列表无法正常发送。用以上邮箱收不到很多服务商的邮件列表就是这个原因。
  这个规则是管理员在服务器上做的设置,普通用户暂时别想。使用IMail的管理员可以让你的老板花银子买Declude插件来实现这个功能。


尝试以下排错方法:
1. Ping 邮件服务器的FQDN名字,并确认是否可以解析出所对
应的IP地址。
   如果不能,在Internet DNS服务器上是否有邮件服务器的
A记录

2.通过NSlookup查询是否为所有能够向外直接发送邮件的
邮件服务器添加了MX记录

http://mail.sina.com.cn/FAQ.html#q3
1.为什么新浪服务器会产生553的退信信息?
这是由于邮件发送方服务器的HELO域设置不规范造成的。如果新浪服务器无法对该域进行正确的DNS解析, 将会导致新浪反垃圾系统认为该服务器是垃圾邮件发送者从而拒收. 不规范的HELO域的示例如下:

HELO office
HELO mailserver
HELO localhost.localdomain

解决方法: 参考本文档后半部分提供的设置方法,正确设置贵方SMTP服务器的HELO域, 使新浪能过对该域名进行正确的DNS解析 

2.SMTP服务器能否设置为公司内网的域名?
请设置贵公司的服务器对外发送的HELO域为正确的贵公司域名,否则将因为和第一条同样的原因造成新浪拒收。


3.SMTP服务器的HELO域已设置正确,怎么还产生553的退信信息?
这是由于发邮件服务器在内网的某个网段中。如果邮件经防火墙发送, 而防火墙没有对邮件的源IP地址进行映射, 新浪的服务器就会认为防火墙的IP是发件方SMTP服务器的IP地址,而邮件源IP地址与HELO域名MX解析不一致. 这种情况也会使新浪拒收邮件。解决方法: 使HELO后面的域名MX解析为防火墙的IP地址, 或者使防火墙把经过它的邮件的IP映射为其真正的IP地址, 即不要改变邮件的源IP地址.


4.SMTP服务器的HELO域能否包含特殊字符?
不可以。如果发邮件服务器的HELO域中包含有无法识别的字符, 就会导致新浪对其DNS解析失败, 从而拒绝接收其邮件.
包含有无法识别字符的HELO域示例: eev?bj?md02.vatech


5.国外网站应如何正确设置SMTP服务器?
新浪要求所有中国大陆境外的CMTP服务器必须提供反向DNS解析。对于中国境外的CMTP服务器,如果不提供反向DNS解析,新浪将认为该服务器为垃圾邮件发送者的服务器并拒收该地址发来的邮件。
解决方法: 注册SMTP服务器公网IP地址的RDNS服务, 并把它对应的域名写到服务器的HELO域中.


6.MS Exchange2000服务器HELO域的设置方法
具体位置在: SERVER---主名---SMTP---DEFAULT SMTP VIRTUAL---属性---DELIVERY---ADVANCED---MASQUERADE NAME


7.Notes服务器HELO域的设置方法
具体位置在:服务器---基本---全限定的Internet主机名

8.imail的HELO应该是 localhost 的general面板上的 Host Name
如Host Name这里是HI.com 那么imail 所用的就是helo HI.com
另外 Imail管理面板-》服务-》SMTP-》advance->Hello Message->HIi.com 只不过修改是smtp的banner信息

总的来说,给163,sina发送不正常都是对方反垃圾的问题。

以上引用来自:http://bbs.51cto.com/archiver/tid-92580.html
11 楼 lsk 2008-08-07  
我想问下lz:

   为什么要起邮件服务器? 因为需要给用户或者客户发邮件.ok问题来了.你起的邮件服务器发出去的邮件都被163,或者sohu,sina认为是垃圾邮件.包括gmail,msn都有可能. 这个问题你是怎么处理的?
10 楼 myy 2008-08-07  
zhai puhong 写道
myy 能不能详细的讲一讲这个基本机制呢。

简单说,就跟现实中的邮局类似。

http://homepage.scau.edu.cn/club/sugh/ReadNews.asp?NewsID=282
9 楼 zhaipuhong 2008-08-07  
myy 能不能详细的讲一讲这个基本机制呢。
8 楼 zhuyx808 2008-08-06  
引用
这些都是邮件服务器最基本的工作机制,根本用不着你操心。


我对邮件服务器了解不是很多,但是老大给布置的N个课外研究课题中就其中就有我说的这个哦,他们自己架起来的邮件服务器,有这个课题就说明了肯定有我说的这个问题的存在,可能我比较孤陋,还请多指点
7 楼 myy 2008-08-06  
zhuyx808 写道
我想问一下,假如我架构了一个服务器,我能不能控制这个服务器什么时候发送,什么时候接收那?具体点就是:在一个邮件服务器中,不同时间段的发送(接收)的邮件数不同,我想在邮件过多的时候就把一些邮件给缓下来,等到空闲的时候在发送,也就是把各个时间段的邮件给平均一下,不至于有时候服务器忙的要死有时候又没事干


这些都是邮件服务器最基本的工作机制,根本用不着你操心。
6 楼 zhaipuhong 2008-08-06  
zhuyx808 这个问题我还没想到,感谢你给我指出了方向
5 楼 zhuyx808 2008-08-06  
我想问一下,假如我架构了一个服务器,我能不能控制这个服务器什么时候发送,什么时候接收那?具体点就是:在一个邮件服务器中,不同时间段的发送(接收)的邮件数不同,我想在邮件过多的时候就把一些邮件给缓下来,等到空闲的时候在发送,也就是把各个时间段的邮件给平均一下,不至于有时候服务器忙的要死有时候又没事干
4 楼 zhaipuhong 2008-07-28  
地址已经更改过来了,见凉,编辑的时候一时没考虑周全,那个地址只有我自己可以访问^_^
3 楼 deepsea0001 2008-07-27  
非常棒的文章!期待下文。。。
再有:http://zhaipuhong.iteye.com/admin/blogs/213005
楼主的这个地址打不开,很想看一下,不知道哪里还有这文章
2 楼 sp42 2008-07-22  
谢谢 帮助我学习James,期待(二)!

相关推荐

    用ApacheJames搭建邮件服务器来收发邮件实践归类.pdf

    本文将重点介绍如何通过Apache James搭建邮件服务器并实现基本的邮件收发功能。 #### 二、搭建环境准备 在正式搭建Apache James邮件服务器之前,需要准备以下软件环境: 1. **JDK 6u10b**:Java运行环境。 2. **...

    用 Apache James 搭建邮件服务器来收发邮件实践.docx

    对于希望使用开源软件搭建邮件服务器的用户来说,Apache James 是一个非常不错的选择。 #### 二、搭建准备 在正式开始搭建 Apache James 邮件服务器之前,我们需要做一些准备工作: 1. **JDK**:首先确保计算机上...

    Java开源邮件服务器james源码

    总的来说,Apache James是一个功能全面且高度可定制的Java邮件服务器,其源代码对于Java开发者来说是一份宝贵的教育资源,有助于理解邮件服务器的工作原理,同时为构建自己的邮件系统或扩展已有功能提供了可能。...

    apache james邮件服务器搭建手册与客户端配置_linux

    刚进个小公司就让我搭建个服务器,研究了一个星期,总算是搞定了,网上找了很多资料,看了很久也研究了很久,最后总结了下...搭建成功...收发邮件都没问题...不过如果是收邮件的话必须要有注册的域名,也就是公网的域名才...

    Apache 邮件服务器 James 简单配置.doc

    Apache James是Apache软件基金会下的一个开源邮件服务器项目,完全基于Java语言构建,具备高度的可配置性和扩展性,同时确保了系统的稳定性。它提供了包括SMTP(Simple Mail Transfer Protocol)、POP3(Post Office...

    apache james(邮件服务器)配置

    在教学实践中,学生们往往需要使用邮件系统来完成项目作业,尤其是在没有公网连接的环境下,如何搭建一套简易且高效的邮件服务器成为了一项迫切的需求。Apache James 作为一种开源邮件服务器解决方案,提供了高度...

    Apache James邮件服务器配置

    Apache James邮件服务器是一款开源的邮件服务器软件,基于Java平台,实现了SMTP、POP3和IMAP4等邮件协议,为企业和个人提供了稳定、可扩展的邮件服务解决方案。本篇将深入探讨如何配置Apache James邮件服务器。 ...

    JAVAMail邮箱服务器搭建步骤详解

    4. **测试与使用**:启动James服务器后,你可以通过邮件客户端(如Foxmail)进行收发邮件的测试,验证服务器是否正常工作。 总结起来,搭建JavaMail邮箱服务器Apache James是一项涉及硬件、软件配置及服务器管理的...

    James+Javamail构建邮件服务

    使用James+Javamail构建邮件服务的过程涉及服务器安装配置、用户管理、邮件收发等多个环节。通过上述步骤,不仅可以搭建起具备基本邮件过滤和操作功能的邮件服务器,还能在此基础上进一步扩展其功能,满足更多复杂的...

    Apache James专题

    例如,可以使用Apache James来编写一个定制的匹配器,以实现特定的邮件处理逻辑。 Apache James的系统架构 Apache James的系统架构包括邮件服务器的核心组件、邮件处理组件、存储组件等。这些组件协同工作,以实现...

    Apache james mailserver + Claros inTouch webmail 搭建mail系统,自己总结

    Apache James Mailserver是一款开源的邮件服务器软件,它基于Java构建,提供全面的邮件服务功能,包括SMTP、POP3和IMAP协议支持。James的核心设计目标是可扩展性和灵活性,允许用户根据需求定制邮件服务。这款服务器...

    Apache james 安装配置手册

    Apache James 是一款开源的邮件服务器软件,主要用于处理电子邮件的接收、发送、存储等任务。本文将详细介绍如何在Linux CentOS 5.1环境下安装配置Apache James邮件服务器。 首先,我们需要准备以下环境: 1. 操作...

    apache-james-2.3.2.tar.gz

    Apache James是一款开源的、基于Java实现的邮件服务器,它提供了完整的邮件系统解决方案,包括SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP4(因特网消息访问协议)服务。"apache-james-2.3.2.tar.gz"是这个...

    james3.0.0邮件系统

    Apache James邮件系统是一款开源的邮件服务器软件,专为组织和个人提供高效、安全的电子邮件服务。在3.0.0版本中,它集成了最新的技术,提供了丰富的功能和强大的可扩展性,使得用户能够轻松地搭建自己的邮件服务器...

Global site tag (gtag.js) - Google Analytics