`
gy090028
  • 浏览: 27829 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

apache james 的配置学习

 
阅读更多

    Apache james是一个开放源代码的完全基于Java开发的邮箱系统.它的介绍说明可以上官网或者百度上面了解.我在这里记录一下我最近尝试使用james遇到的问题.

    首先,配置apache james.

      james 基于Java 依赖于Java,所以要检查 james 所在服务器的JAVA_HOME 环境变量有没有设置.

        设置好环境变量之后, 进入\james-2.3.2\bin,目录双击run.bat就可以使用默认的配置启动james服务了.

        当然,默认配置不能满足我们的需要 ,那么需要进入.\james-2.3.2\apps\james\SAR-INF\目录中编辑config.xml文件进行定制.

    1). :(52行左右)

<postmaster>Postmaster@localhost</postmaster>

修改为 :

<postmaster>Postmaster@自定义后缀名(如 cepri.com</postmaster>

 

2). :(71行左右)

   <servernames autodetect="true" autodetectIP="true">

<!-- CONFIRM? -->

        <servername>localhost</servername>

  </servernames>

 修改为 :

<servernames autodetect="false" autodetectIP="false">

<!-- CONFIRM? -->

 <servername>自定义后缀名(如 cepri.com</servername>

  </servernames>

3). :(551行左右)

<mailet match="RemoteAddrNotInNetwork=127.0.0.1"

class="ToProcessor">

<processor> relay-denied </processor>

<!--[if !supportLists]-->1.       <!--[endif]--><notice>550 - Requested action not taken: relaying denied</notice>

 </mailet>

 以上部分整体注释掉.

4). :(896行左右)

<authRequired>true</authRequired> 的注释去掉,使其生效.

    默认情况下,james使用的是文件系统存数用户账户和邮件等信息.如果要使用数据库存储,

    还需要进行下面设置

    1,找到<users-store>标签  

    将下边的这种文件存储方式注释  

    <repository name="LocalUsers" class="org.apache.james.userrepository.UsersFileRepository">  

        <destination URL="file://var/users/"/>  

    </repository>  

    把下边的数据库存储方式的注释打开或者新增  

    <repository name="LocalUsers" class="org.apache.james.userrepository.JamesUsersJdbcRepository" destinationURL="db://maildb/users">  

        <sqlFile>file://conf/sqlResources.xml</sqlFile>  

    </repository>  

2,找到<data-source name="maildb"这一行修改成以下内容  

    <data-source name="maildb" class="org.apache.james.util.dbcp.JdbcDataSource">  

        <driver>oracle.jdbc.driver.OracleDriver</driver>  

        <dburl>jdbc:oracle:thin:@192.168.1.1:1521:test</dburl>  

        <user>test</user>  

        <password>test</password>  

        <keep-alive>select 1 from dual</keep-alive>  

            <testOnBorrow>true</testOnBorrow>  

            <testOnReturn>true</testOnReturn>  

            <max>50</max>  

        <poolPreparedStatements>true</poolPreparedStatements>  

    </data-source>  

3,找到<inboxRepository>  

    将下边的这种文件存储方式注释  

    <inboxRepository>   

        <repository destinationURL="file://var/mail/inboxes/" type="MAIL"/>     

    </inboxRepository>  

    把下边的数据库存储方式的注释打开或者新增  

    <inboxRepository>   

        <repository destinationURL="db://maildb/inbox/" type="MAIL"/>   

    </inboxRepository>      

4,找到<spoolrepository  

    将下边的这种文件存储方式注释    

    <spoolrepository destinationURL="file://var/mail/spool/" type="SPOOL"/>  

    把下边的数据库存储方式的注释打开或者新增

    <repository destinationURL="dbfile://maildb/spool/spool" type="SPOOL"/>  

5,将相应驱动拷贝到james/lib/  

 

 

    我个人使用的是邮箱账户存储在数据库中,启动存储在文件中,

    这样的好处是增删用户直接操作数据库就可以了,james 用户密码所用的加密方式是sha加密

    

/**
	 * 可以用于 md5 或者 sha 加密
	 * 
	 * @param pass
	 *            要加密的明文
	 * @param algorithm
	 *            加密方式 (md5或 sha)
	 * @return
	 * @throws NoSuchAlgorithmException
	 */
	public static String digestString(String pass, String algorithm) 
        throws NoSuchAlgorithmException {

		MessageDigest md;
		ByteArrayOutputStream bos;

		try {
			md = MessageDigest.getInstance(algorithm);
			byte[] digest = md.digest(pass.getBytes("iso-8859-1"));
			bos = new ByteArrayOutputStream();
			OutputStream encodedStream = MimeUtility.encode(bos, "base64");
			encodedStream.write(digest);
			return bos.toString("iso-8859-1");
		} catch (IOException ioe) {
			throw new RuntimeException("Fatal error: " + ioe);
		} catch (MessagingException me) {
			throw new RuntimeException("Fatal error: " + me);
		}
	}

 

   

     如果邮件内容存在数据库的话,会遇到附件大小1M的限制,是因为mysql的默认max_allowed_packet大小为1M,

    可以改my.ini中此属性的大小(如果没有自己添加上去)来调整附件的大小.

    

  

    

 

 

    

分享到:
评论

相关推荐

    Apache James邮件服务器配置

    Apache James邮件服务器是一款开源的邮件服务器软件,基于Java平台,实现了SMTP、POP3和IMAP4等邮件协议,为企业和个人提供了稳定、可...通过不断学习和实践,我们可以更好地利用Apache James满足各种邮件服务需求。

    apache-james-2.3.2.jar+源码

    而"apache-james-2.3.2.zip"可能包含的是编译后的二进制文件和配置文件,可以直接用于部署和运行Apache James服务器。 "james-2.3.2"可能是另一个版本或构建的别名,具体用途需要根据上下文来确定。 总的来说,...

    apache-james-2.3.2-src.tar.gz

    Apache James是开源的邮件服务器项目,它由Apache Software Foundation维护,提供邮件服务器、POP3、IMAP4和SMTP服务。这个"apache-james-2.3.2-src.tar.gz"文件是一个源代码压缩包,意味着它包含了Apache James ...

    Java开源邮件服务器james源码

    Java开源邮件服务器Apache James是基于Java技术构建的一款强大的邮件服务器软件。它的源代码开放,允许开发者深入...通过学习和研究Apache James的源代码,开发者可以提升在邮件处理、网络通信和服务器管理方面的技能。

    JMail操作详解apache-james-2.3.2.zip

    3. **启动James**: 进入到Apache James的bin目录,运行相应的启动脚本(如`run.sh`或`run.bat`),根据提示进行配置。注意,你可能需要修改`server.xml`等配置文件以适应你的网络环境和需求。 4. **配置SMTP和POP3...

    james的配置文件

    &lt;mailboxmanager class="org.apache.james.mpt.imapmailbox.suite.LocalFileSystemMailetContainer"&gt; &lt;directory&gt;/path/to/mailboxes ``` **6. 安全设置** James的安全设置涉及SSL/TLS加密、认证机制等。...

    apache-james-3.0-beta3-source-release.zip

    总的来说,Apache James 3.0 beta3源代码的发布为开发者和管理员提供了一个灵活且强大的邮件解决方案,无论是用于学习、研究还是实际生产环境,都能满足不同层次的需求。通过深入源代码,我们可以更好地理解和定制这...

    apache邮件工具

    在描述中提到的"网上看来的,供大家一起共同分享学习",意味着这个压缩包可能包含了一些教程、源代码或者配置示例,帮助初学者了解如何使用Apache James。Apache邮件工具能够帮助用户实现基本的邮件发送、接收和管理...

    james和javamail实现邮件收发(带发送附件)

    在提供的压缩包文件“james+javaMail收发邮件”中,可能包含了示例代码和配置文件,供开发者参考和学习如何在实际项目中实现邮件收发功能,特别是处理中文内容和附件。通过理解和实践这些示例,开发者可以更好地掌握...

    james_javamail邮件服务学习

    在学习过程中,通过实践编写发送和接收邮件的示例代码,以及配置和管理James服务器,可以深入理解JavaMail API和Apache James的功能和使用方法。同时,掌握这些知识点对于开发企业级应用、构建邮件通知系统或实现...

    james-2.3.1-src

    通过这些文件,开发者可以按照指引编译和运行Apache James,同时也可以阅读源码来学习邮件服务器的设计原理,从而提升自己的Java编程和邮件系统管理技能。对于想要贡献代码给Apache James项目的开发者,这些源码和...

    james server source code

    通过分析和研究Apache James Server的源代码,开发者不仅可以学习到邮件服务器的工作原理,还可以提升Java编程、网络通信、邮件协议处理等方面的技能,同时有机会为这个开源项目贡献自己的力量。对于希望深入了解...

    james3.0源码

    Apache James 3.0 是一个开源的邮件服务器项目,它基于Java技术构建,提供全面的邮件服务功能,包括SMTP、POP3和IMAP协议的支持。这个源码版本为3.0 beta4,意味着它是该系列的测试版,可能包含一些预发布的功能和...

    ApaceJames和Mail

    通过配置Apache James,用户可以搭建自己的邮件服务器,从而实现邮件的本地托管,提高数据安全性和隐私保护。 JavaMail API是Java平台上的一个库,用于处理电子邮件。它提供了丰富的接口和类,使得开发者可以方便地...

    关于JavaMail和James邮件基础

    综上,学习JavaMail和James可以让你深入理解邮件处理的底层机制,实现从邮件的创建、发送到邮件服务器的管理等一系列功能。无论是开发邮件应用,还是构建企业级邮件服务,这两个工具都提供了强大的支持。

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

    Apache James是基于Java开发的一款开源邮件服务器,它集成了POP3、SMTP等常见的邮件协议,为企业和学习者提供了构建邮件服务器的便利。本文将详细介绍如何在Linux环境下搭建JavaMail邮箱服务器Apache James。 **...

    Apache Ant 教程 - 极客学院

    通过Apache Ant的学习和使用,开发人员可以大幅提升开发效率,减少重复性工作带来的困扰,并确保构建过程的一致性和可靠性。这对于任何希望提高软件开发生命周期效率的团队来说都是极其重要的。

    Apache_ANT完美详解.pdf

    Apache Ant的诞生源于一位名叫James Duncan Davidson的程序员对现有构建工具局限性的挑战。1998年,James在尝试使用GNU Make、批处理文件和shell脚本来构建跨平台的Tomcat时遇到了困难,这些传统工具无法满足其需求...

    用JAMES实现自己的邮件服务器.docx

    - **下载安装包**:本文中使用的是JAMES 2.3.1版本,可以通过Apache官方网站下载相应的安装包。 - **解压安装包**:将下载好的`james-binary-2.3.1.zip`文件解压至指定目录,例如`C:\james`,解压后即完成了安装过程...

Global site tag (gtag.js) - Google Analytics