apache james 邮件服务器连接数据库文库
用-Apache-James-搭建邮件服务器来收发邮件实践
Apache James 简称 James, 是 Java Apache Mail Enterprise Server的缩写。
James 是100%基于Java的电子邮件服务器。
它是一种独立的邮件服务器,并提供了一个完整的电子邮件解决方案,用来收、发电子邮件。
本文不赘述James服务器的参数细节,这个以后有机会再详细讨论,这里先从服务器搭建开始,用搭建的服务器收、发电子邮件来熟悉一下Apache James。
本人也是新手,希望能得到各位高手的指点,使大家能悟到进阶的方向。
开始之前,先声明一下本文操作的系统环境:1. JDK 6u10b2. JMail API v1.4.23. JAF API v1.1(JavaBean Activation Framework)4. Apache James 2.3.15. Eclipse 3.4 for J2EE Developers6. Windows 2000 Server sp41。
请下载安装JDK,并设置好其环境变量:JAVA_HOME=…… 、PATH=…… 、CLASSPATH=…… Eclipse 3.4 是目前的最新版本,可以从/下载。
2。
请下载JMail API、JAF API,可以在找到他们,找不到也不要紧,本文附件示例代码免费提供一份(^_^)。
3。
Apache James 的官方网站为:/,当前 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 服务器。
启动后能在控制台看到如下信息,说明启动成功:Java代码•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 端口启动, 请确保这些端口未被占用。
Apache_James安装配置
Apache James 实战之“安装配置”2012年3月28号上海释锐教育软件有限公司实战成功案例James版本:C:\apache-james-3.0-beta3\/question/3270_12317/maven2/org/apache/james/数据库:MS SQL Server 2005参考资料:* Install /server/3/install.html* Configure /server/3/config.html* Manage /server/3/manage.html* Monitor /server/3/monitor.html实战电脑:192.168.18.55开源邮件服务器-JAMES之系统搭建Apache James(Java Apache Mail Enterprise Server)是Apache组织的子项目之一,完全采用纯Java技术开发,实现了SMTP、POP3与NNTP等多种邮件相关协议。
目前James有稳定版还stable版本2.3.2和beta版beta3.James2.x版本开发于A valon(Java Apache Server Framework)框架之上,James3.x开发自Spring框架之上。
同时为了解决性能问题,在James3.x上加入Queue 机制(ActiveMQ)进行邮件的异步处理。
同时3.x配置文件对2.x的配置文件进行了拆分,故James2.x和James3.x有较大的区别。
本文将以项目中使用的版本James Server 3.0-beta3的环境配置进行描述。
一、简单安装下载apache-james-3.0-beta3.zip文件解压缩即完成安装,如下图:4.James3 简单运行a. 安装windows服务安装apache james serviceb.首次启动必须启动apache james service。
用apache james搭建自己的邮件服务器
Linux下搭建自己的邮件服务器一、部署apache james1、Apache james 需要用到root权限,因此需要用有root权限的用户登录系统。
2、需要安装JDK1.5或以上版本。
并且需要设置好JDK环境变量。
3、James启动,其SMTP服务默认在25端口,POP3默认在110端口,NNTP服务默认在119端口。
可以通过配置修改端口。
4、下载james安装文件,直接解压,可得到james-2.3.2 ,进入里面的bin文件夹,运行run.sh,生成apps文件夹。
在apps\james\SAR-INF文件夹里面有config.xml文件,这是james 的主配置文件,关闭james服务,ctrl+c关闭服务。
关闭服务之后修改配置文件。
主要的修改稿如下所示:修改自己邮件服务名1 <postmaster>Postmaster@</postmaster>2 <servernames autodetect="true" autodetectIP="true">3 <servername></servername>4 </servernames>修改DNS服务1<dnsserver>2<servers>3<server></server>4<server></server>5<server></server>6</servers>7<!-- 修改自动探测为false 如果为true 可能在开发时出现异常 -->8<autodiscover>false</autodiscover>9<authoritative>false</authoritative>10<maxcachesize>50000</maxcachesize>11</dnsserver>同时要注释掉下面的配置1<mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor">2<processor> relay-denied </processor>3<notice>550 - Requested action not taken: relayingdenied</notice>4</mailet>ToProcessor的功能是将e-mail处理转发给一个指定的处理器修改smtpserver节点里面的authRequired节点为<authRequired>true</authRequired>开启SMTP server身份验证修改远程管理,以便在控制台中执行telnet 4566命令登录james1 <remotemanager enabled="true">2 <port>4566</port>3 <handler>4 <helloName autodetect="true">myMailServer</hello Name>5 <administrator_accounts>6 <account login="root" password="123456"/>7 </administrator_accounts>8 <connectiontimeout>60000</connectiontimeout>9 <prompt>welcome to mt Sever></prompt>10 </handler>11 </remotemanager>登录的用户名和密码还有端口号都是可配置的。
配置ApacheJames邮件服务器以使用加密邮件通讯协议
配置ApacheJames邮件服务器以使⽤加密邮件通讯协议可先参照:之后进⾏如下操作/配置:1. 加密证书,可购买,也可⾃⼰⽣成。
2.如果是⾃⼰⽣成证书,则参照如下步骤:执⾏ DOS 命令:${JRE_HOME}\bin\keytool.exe -genkey -alias zheguisoft_james -keyalg RSA -keystore ${JAMES_ROOT}\conf\zheguisoft_james_keystore密钥库⼝令: xxxxxxxxxx名字与姓⽒: xxxx组织单位名称: Shanghai Zhegui Software Co.,Ltd组织名称: Shanghai Zhegui Software Co.,Ltd城市与区域: Shanghai省/市/⾃治区名称:Shanghai双字母国家/地区代码: CNCN=xxx, OU="Shanghai Zhegui Software Co.,Ltd", O="Shanghai Zhegui Software Co.,Ltd", L=Shanghai, ST=Shanghai, C=CN是否正确?[否]: y输⼊ <zheguisoft_james> 的密钥⼝令密钥⼝令: ==> 直接回车.3. 不论加密证书是购买的,还是⾃⼰⽣成的,都放在 ${JAMES_ROOT}\conf ⽬录下。
4. 复制 ${JRE_HOME}\lib\ext\sunjce_provider.jar 到 ${JAMES_ROOT}\lib ⽬录下。
5. 修改 ${JAMES_ROOT}\conf\pop3server.xml ,配置使⽤ SSL 加密协议.<bind>0.0.0.0:995</bind><tls socketTLS="true" startTLS="false"><keystore>file://conf/zheguisoft_james_keystore</keystore><secret>xxxx</secret><provider>org.bouncycastle.jce.provider.BouncyCastleProvider</provider></tls>以上 zheguisoft_james_keystore 为加密数字证书,xxxx 为密钥库⼝令。
米林(ljg)邮箱使用说明
米林(ljg)邮箱使用说明一、环境配置本系统需要的环境:apache james3.0邮件服务器、tomcat 服务器、Mysql5.1数据库工具软件下载地址:/detail/afgasdg/3681675(免资源分)二、具体环境配置Mysql5.1 配置使用本系统前请将mysql编码设置成utf-8编码形式,mysql用户名root,密码root。
另外在mysql数据库中新建一个数据库名称为email的数据库。
(不需要建立任何数据表运行时自动生成数据表)MySQL可视化编辑工具NaviCat9.1.10下载地址:/detail/dwr123/3214996James邮件服务器配置:1、对于邮件服务器的配置请将,james3.0-conf.zip文件解压之后覆盖james邮件服务器的conf目录。
2、对于不是联网的用户需要修改james邮件服务器以下配置:(原因:james邮件服务器启动时需要联网加载xml校验文件。
)将activemq-core-5.4.1.jar文件覆盖原来的lib目录下的(activemq-core-5.4.1.jar)文件。
Tomcat配置1、本系统需要javamail1.4.3 jar包。
项目中已经将jar包导入到了构建路径中,但是如果采用的是J2EE5将使用J2EE5中默认的javaMail jar包。
这个我还没有找到解决办法。
而J2EE6使用的javamail版本刚好是1.4.3。
故请使用J2EE6三、系统说明1、本系统是使用struts2.2.3 + spring 3.0.1 + jpa(hibernate3.6.5)+ jquery1.6.2 +jquery uploadify实现的。
2、导入该项目到MyEclipse时请将项目的编码格式设置为utf-8格式的编码(否则可能出现中文乱码)3、将本系运行时请输入http://localhost:8080/email/4、强调一点,使用前请先注册一个管理员账号。
James邮件服务器简单介绍及配置发送外网邮件
一、简介Apache James(Java Apache Mail Enterprise Server)是Apache组织的子项目之一,完全采用纯Java技术开发,实现了SMTP、POP3与NNTP等多种邮件相关协议。
James也是一个邮件应用平台,可以通过Mailet扩充其功能,如Mail2SMS、Mail2Fax等。
James提供了比较完善的配置方案,尤其是关于邮件内容存储和用户信息存储部分,可以选择在文件、数据库或其他介质中保存。
本文将以James2.3.2版本作为介绍二、安装与配置James的安装配置过程非常简单。
第一步:安装JDK请使用JDK1.3以上版本(推荐使用JDK1.5),假设安装在c:/jdk1.5。
第二步:下载James,并解压可以到Apache网站上下载Jamesjames-2.3.2,下载将得到一个压缩文件james-2.3.2.zip,大小为7.30M,将此包解压到c:/james。
下载地址:官方地址:/下载地址:/apache/james/server/binaries/james-binary-2.3.1.zip第三步:直接运行或需要配置JAVA_HOME这时,可以尝试直接双击c:/james/bin/run.bat,若启动无误,将提示如下:Using PHOENIX_HOME: C:/jamesUsing PHOENIX_TMPDIR: C:/james/tempUsing JAVA_HOME:Phoenix 4.0.1James 2.3.2Remote Manager Service started plain:4555POP3 Service started plain:110SMTP Service started plain:25NNTP Service DisabledFetch POP Disabled也有可能启动不了,并报JAVA_HOME找不到,这时,需要指定JAVA_HOME,比较简单的方法是在c:/james/bin/run.bat中指定JAVA_HOME,修改后的run.bat如下:……remrem Determine if JAVA_HOME is set and if so then use itremset JAVA_HOME= c:/jdk1.5if not "%JAVA_HOME%"=="" goto found_java……修改完后再运行run.bat,应该就可以正常启动了第四步:服务器配置首先找出专用服务器的名字,假设叫weimao。
James邮件服务器设置
James邮件服务器设置1.安装jdk设置环境变量JAVA_HOME2.安装、启动、停止、卸载james邮件服务1)将apache-james-2.3.2.zip解压缩到jdk所在盘符分区下,james-2.3.2\\conf目录下的wrapper.conf拷贝到james-2.3.2\\cbin即包含wrapper.exe的目录下,运行:wrapper.exe -i XXXX:\\james-2.3.2\\bin\\wrapper.conf2)在控制面板->管理工具启->服务:James Mail Server 2.3.2重启或停止。
也可以通过命令wrapper.exe -t XXXX:\\james-2.3.2\\bin\\wrapper.conf 启动wrapper.exe -p XXXX:\\james-2.3.2\\bin\\wrapper.conf 停止3)卸载运行命令:wrapper.exe -r XXXX:\\james-2.3.2\\bin\\wrapper.conf 卸载3.配置:1)服务器端配置(邮件服务器的名字假设叫JamesServer)停止邮件服务器,然后打开XXX:\\ james-2.3.2\\apps\\james\\SAR-INF\\config.xml。
在config.xml文件中,找到Postmaster@localhost,把此项目改为Postmaster@JamesServer,同时找到位于----localhost的localhost,把此项改为JamesServer。
这样就可以让其它机器也能访问邮件系统。
4)在C:\\WINDOWS\\system32\\drivers\\etc\\hosts 中添加邮件服务器地址5)配置发外网邮件打开config.xml文件,1.找到设成autodetect="false" autodetectIP="false"> autodetct设为true会自动侦测你的主机名,设成false会用你指定的server name. autodetectIP设为true会为你的servername加上ip.2. 注释掉。
Apache James Server 3.0 配置参考
Apache James Server 3.0 部署參考(1)下載地址:/download.cgi#Apache_James_Server(下载的版本是3.0)(2)安裝:下載后,將其解壓到C盤,安裝完畢^_^目錄如下圖:(3)James Server 的配置文件:打開目錄:C:\james-server-container-spring-3.0-M2-bin\james-server-container-spring-3.0-M2\conf James Server所需要的配置文件目錄如下:①配置服務器的域名:用寫字板打開mailserver.xml文件。
改為如下內容:<mailserver><postmaster>Postmaster@.mo</postmaster><enableVirtualHosting> false </enableVirtualHosting><defaultDomain>.mo</defaultDomain><helloName autodetect="false">.mo</helloName></mailserver>。
參考資料:https:///repos/asf/james/server/tags/james-server-3.0-M2/containe r-spring/src/main/config/examples/usersrepository.xml②配置鏈接外網的域名:用寫字板打開dnsservice.xml文件。
找到<dnsservice>結構改為一下內容:<dnsservice><servers><server>ip address </server><server>.mo</server></servers><autodiscover>false</autodiscover><authoritative>false</authoritative><maxcachesize>50000</maxcachesize></dnsservice>參考資料:https:///repos/asf/james/server/tags/james-server-3.0-M2/container-spring/src/ main/config/examples/dnsservice.xml③配置預處理郵件服務域名:用寫字板打開dominlist.xml文件找到<domainlists>結構,改為一下內容:<domainlists><domainlist class="org.apache.james.domainlist.xml.XMLDomainList"><domainnames><domainname>.mo</domainname></domainnames><autodetect>false</autodetect><autodetectIP>false</autodetectIP></domainlist></domainlists>參考資料:https:///repos/asf/james/server/tags/james-server-3.0-M2/ container-spring/src/main/config/examples/domainlist.xml④支持OpenDS配置:用寫字板打開userrepository.xml文件找到<usersrepository>結構,把以下內容註釋掉:<repository name="LocalUsers"class="er.jpa.JPAUsersRepository"><algorithm>MD5</algorithm></repository>添加以下代碼:<repository name="LocalUsers"class="er.ldap.ReadOnlyUsersLDAPRepository"ldapHost="ldap://localhost:389" principal="cn=Directory Manager"credentials="123456" userBase="dc=erip,dc=metaarchit"userIdAttribute="cn" userObjectClass="inetOrgPerson"><restriction memberAttribute="uniqueMember"><group>cn=StudentMember,dc=erip,dc=metaarchit</group></restriction></repository>(userIdAttribute屬性是用來在OpenDS中獲取用戶的用戶名的,默認是DS中Entry的cn屬性。
apache james使用
apache james使用一、简介Apache James(Java Apache Mail Enterprise Server)是Apache组织的子项目之一,完全采用纯Java技术开发,实现了SMTP、POP3与NNTP等多种邮件相关协议。
James也是一个邮件应用平台,可以通过Mailet扩充其功能,如Mail2SMS、Mail2Fax等。
James 提供了比较完善的配置方案,尤其是关于邮件内容存储和用户信息存储部分,可以选择在文件、数据库或其他介质中保存。
James性能稳定、可配置性强,还是开源项目,所有源代码不存在版权问题,因此,James在项目中的应用日益广泛,现在常用版本为2.1,但最新版本2.3已经推出,在本文中,我们将仍以James2.1作为介绍蓝本。
二、安装与配置James的安装配置过程非常简单。
第一步:安装JDK请使用JDK1.3以上版本(推荐使用JDK1.4),假设安装在c:\jdk1.3。
第二步:下载James,并解压可以到Apache网站上下载James2.1,下载将得到一个压缩文件james-2.1.zip,大小为4.45M,将此包解压到c:\james。
第三步:直接运行或需要配置JAVA_HOME这时,可以尝试直接双击c:\james\bin\run.bat,若启动无误,将提示如下:也有可能启动不了,并报JAVA_HOME找不到,这时,需要指定JAVA_HOME,比较简单的方法是在c:\james\bin\run.bat中指定JAVA_HOME,修改后的run.bat如下:修改完后再运行run.bat,应该就可以正常启动了,若还有什么问题,请参见本文的FAQ部分。
三、项目应用1、项目需求某单位,有16个职能处室,共78台电脑(操作系统为Win98/2000/xp),其中有1台为专用服务器(Win2000),已连成局域网。
为使单位内部的信息交流,尤其是文件交互更加便捷,单位决定在局域网内部架设一套E-mail系统。
James+Javamail构建邮件服务器
James+Javamail构建邮件服务本文描述如何使用James搭建具备一定邮件过滤、邮件操作功能的邮件服务器,以及使用Javamail实现对James服务器邮件的收发功能。
1 关于James与JavamailApache James(Java Apache Mail Enterprise Server)是Apache 组织的子项目之一,完全采用纯Java技术开发,实现了SMTP、POP3与NNTP等多种邮件相关协议。
James是一个邮件应用平台,可以通过Mailet扩充其功能,如Mail2SMS、Mail2Fax等。
James提供了比较完善的配置方案,尤其是关于邮件内容存储和用户信息存储部分,可以选择在文件、数据库或其他介质中保存。
James性能稳定、可配置性强,还是开源项目,所有源代码不存在版权问题,因此,James在项目中的应用日益广泛。
Javamail API是一个用于阅读、编写和发送电子消息的可选包(标准扩展),可以用来建立基于标准的电子邮件客户机,它支持各种因特网邮件协议,包括:SMTP、POP、IMAP、MIME、NNTP、S/MIME 及其它协议。
在本文档中,我们使用James 2.3.1+Javamail 1.4.1作为介绍蓝本。
2 James服务器快速入门我们可以从Apache James 的官方站点下载到我们所需要的James服务器及源码James服务器(ZIP版)下载地址:/james/server/binaries/james-binar y-2.3.1.zipJames源码下载地址:/james/server/source/james-2.3.1-s rc.zip其他版本的服务器及源码可到官方下载页面下载:/download.cgi2.1 启动James第一步:将james-binary-2.3.1.zip解压到纯英文目录下第二步:运行bin目录下的run.bat(在运行之前请确保您的Java环境变量已配置成功,否则将提示运行失败)显示以下内容表示James服务器已启动成功:服务器启动成功后,将自动在apps目录下根据james.sar文件生成相应的James发布文件包,我们后面讨论的配置文件config.xml即存在于此发布文件包中。
James收发外网邮件的配置
James 收/发外网邮件的配置无法给外网邮箱发送邮件:James邮件服务器用的好好的,忽然不能发外网邮箱了,员工查了两天配置没搞定,只好自己来看了。
首先参考网上各种配置方案(很多也很全面了),下面列举了一个。
看了半天感觉没什么问题,只好停下来思考了。
1、开始能正常使用,确定配置没问题。
2、服务器网络环境没变,硬件没有问题。
3、能收,不能发,剩余的可能原因如下:a)防火墙拦截b)程序运行中出现异常关闭防火墙,重启服务无效。
检查程序发送队列(邮件已消息队列形式存储在james-2.3.2\apps\james\var\mail\outgoing路径下),停止服务——》删除队列内容——》启动服务,发送邮件,瞬间收到邮件,搞定。
James配置:前面已经知道了如何安装JAMES,发送邮,收邮件,和数据库连接;但这种配置只能接收本地服务器的邮件,也就是说,我用外网邮箱,如:网易,新浪等;给我在本地这个服务器的邮箱地址发一封邮件,或者我用本地邮件服务器的这个邮箱给外网发一封邮件,它是不会成功的.因为还有一些针对外网的配置要进行;1)配置邮件服务器域名或IP;在发送邮件时肯定要有个域名,如:4545@;@符号后面的就是邮件服务器的域名;当然也有这种域名:1212@;域名用IP表示;但无论怎样.这个域名都指向了一台机器,就是邮件服务器;也就是安装了JAMES的这台机器;找到<servernames />项;配置如下:<servernames ><servername></servername></servernames>2)DNS配置;这一步至关重要,稍不注意就无法和外网联系;找到<dnsserver />项配置如下<dnsserver><servers><server>202.103.24.68</server><server></server></servers><autodiscover>false</autodiscover><authoritative>false</authoritative><maxcachesize>50000</maxcachesize></dnsserver>上面一个是本地DNS的IP,这个在本地连接里可以找到;下面一个就是邮件服务器;3)SMTP,POP3等..设置;a:找到:<authorizedAddresses>127.0.0.0/8</authorizedAddresses>将它改成:<authorizedAddresses>192.168.0.0/24, 127.0.0.0/8</authorizedAddresses> 或 <authorizedAddresses>192.168.0.0/255.255.255.0,127.0.0.0/8</authorizedAddresses>这里设置后,只要在这个配置范围内的IP发送或接收的邮件就不会被过滤;里面的数值根据本地的网络来设置,如:我这里的是192.168.0.0/24, 127.0.0.0/8;有可能有的是这样:192.168.1.0/24, 127.0.0.0/8b:找到:<mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor"><processor> relay-denied </processor><notice>550 - Requested action not taken: relaying denied</notice></mailet>将它注释掉;c:找到<smtpserver />;将< authRequired />打开,设为true:<authRequired>true</authRequired>d:找到<remotemanager />将它设置如下:<remotemanager enabled="true"><port>4555</port><handler><helloName ></helloName><administrator_accounts><account login="root" password="oapro"/></administrator_accounts><connectiontimeout> 60000 </connectiontimeout></handler></remotemanager>系统默认帐户最好是改一下,不然别人可以远程登录你的邮件服务器做坏事的; e:将smtpserver,pop3server,两个项下的<helloName >myMailServer</helloName> 里的autodetect均设为false;重启服务,测试外网邮件;如果还不能成功发送,接收,采取如下非凡配置:①、查找替换所有的localhost为域名②、查找所有autodetect属性,修改为false。
Apache james使用入门
POP3服务受config.xml文件中的pop3server配置块控制。
pop3server标签定义了配置块的边界,它包含所有POP3服务器的相关配置。
这个标签的属性或其子标签决定了POP服务的行为。
这个标签有一个可选的布尔属性- enabled -定义了这个服务是否处于活动状态。
如果该属性不存在,则取默认值“true”。
pop3server标准的子标签是:port -可选的整型值,配置POP3服务器在哪个端口上监听。
如果这个标签或它的值被忽略了,则取默认的标准POP3端口-110。
bind –可选值,描述绑定该服务的IP地址,是一个字符串值。
如果这个标签或它的值没有出现,则该服务将绑定到机器的所有网络接口。
useTLS- 可选的布尔值,如果其值为“true”,使用“ssl”服务器socket接口工厂为这个服务生成服务器socket连接。
否则使用“plain”服务器socket工厂。
但无论该值为什么,如果配置文件中存在下面专家配置选项中所讨论的serverSocketType标签,该行为最终都由serverSocketType标签的值决定。
handler –这是一个保持向后兼容性的工艺品,它只是将一些相关的参数放到一组中。
在将来的版本中这个标签应该会被去掉。
helloName-这是一个必需的标签,它的值定义了用于服务启动时的问候语中的服务器名,但它的值是可选的。
这个标签可能会有一个可选的属性-autodetect。
如果autodetect属性存在并且为“true”,则该服务会使用Java库返回的本地主机名。
否则就使用该标签的值,在这种情况下,如果标签的值不存在,那就会用“localhost”。
connectionTimeout –带有一个整型值的可选标签。
pop3server标签还有几个适用于高级配置的子标签。
这些值仅供专家级的系统管理员使用,在这一组中的所有标签都是可选的。
serverSocketFactory -带有字符串值的可选标签,如果该标签存在,那它的值必须是一个在socket manager块中说明的服务器socket工厂的名字。
ApacheJames学习笔记5(开发一个Mailet实例)
ApacheJames学习笔记5(开发一个Mailet实例)Apache James学习笔记5-------开发一个Mailet1.开发一个Mailet1.1在eclipse中新建一个工程导入3个jar包,作为额外包导入,前面的学习笔记中已经介绍如何导入(这3个包都在James的文件夹下,可以使用搜索) Mail-1.4.1.jarMailet-2.3.jarMailet-api-2.3.jar1.2在工程中创建一个包创建包名为com.pbosoft.mailet在包下下创建2个类TestMailet和TestMatcher编写2个类TestMailet.javapackage com.pbosoft.mailet;import org.apache.mailet.GenericMailet;import org.apache.mailet.Mail;public class TestMailet extends GenericMailet{public void init(){}public void service(Mail mail){System.out.println("Recv mail");}}TestMatcher.javapackage com.pbosoft.mailet;import org.apache.mailet.GenericRecipientMatcher; import org.apache.mailet.MailAddress;public class TestMatcher extends GenericRecipientMatcher {public boolean matchRecipient(MailAddress mailaddress) {return true;}}1.3到处为jar包右键工程名,export->jar file1.4部署到James中James –> apps –> james –> SAR-INF在该文件夹下创建一个lib文件夹,将刚刚生成的Jar包拷贝至此。
james简介和配置
James邮件服务器简介与配置一.J ames简介Java Apache邮件服务器一般是指Apache组织开发的James,它是一个轻便的、安全的100%纯Java实现的邮件服务器。
不仅如此James还可以提供更多的功能,感谢James给我们提供了插件化协议架构和mailet底层构造,它可以让我们利用web服务器的servlets处理邮件。
Email服务到处都是,开始是DARPA(国防部高级研究计划局)的一个计划并最终发展为Internet,但是James成为了打破这一传统规则的第一个应用。
The Java Apache 企业邮件服务器(a.k.a. Apache James)是一个100%用Java实现的SMTP 和POP3邮件服务器,同时,他还实现了NNTP新闻服务器的功能。
James被设计成一个完整的、可移植的企业邮件引擎解决方案,他完全基于目前可用的开放性协议。
James还是一个邮件应用平台。
Apache组织提供了一套Java API-mailet API,利用mailet API,可以根据自己的需要用Java语言编写代码来对邮件进行个性化的处理。
mailet可以生成一个自动回复,更新数据库,阻止垃圾邮件,建立消息档案,或者任何我们能想像的到的功能。
与mailet 密切相关的是消息适配器(matcher),一个消息适配器可以判断mailet是否要对服务器中的一个邮件进行处理。
James项目提供了Mailet API和一个邮件应用平台API的实现。
他建立在Apache Avalon 应用框架(关于Avalon -/)的基础之上。
二、J ames组成James是一个支持多种协议的消息处理和存储引擎,目前由以下几个部分组成:1.两个邮件服务器(SMTP和POP3)2.一个远程管理服务器3.一个NNTP服务器4.一个支持Mailet API的邮件处理引擎5.一个文件系统消息存储机制和一个关系型数据库消息存储机制接口6.文件系统用户记录存储机制和一个试用的LDAP目录存储接口7.支持POP3和远程管理的TLS(SSL)连接8.支持SMTP认证三、James的设计目标James被设计为实现几个确定的目标。
james邮件服务器修改内网发送到其它邮件服务器
james邮件服务器修改内网发送到其它邮件服务器<servernames autodetect="false" autodetectIP="false"><servername></servername></servernames>1. autodetct设为true会自动侦测你的主机名, 设成false会用你指定的server name. 2.autodetectIP设为true会为你的servername加上ip. (不需要)3.servername 改为你的server名字如 4.C:\WINDOWS\system32\drivers\etc\hosts文件,添加127.0.0.1 二、找到下面的注释掉:<!--mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor"><processor> relay-denied </processor><notice>550 - Requested action not taken: relaying denied</notice></mailet-->三、找到<dnsserver>修改<!--<server>127.0.0.1</server>--><servers><server></server><server>1.1.1.2</server></servers><!-- Change autodiscover to false if you would like to turn off autodiscovery --><!-- and set the DNS servers manually in the <servers>section --><autodiscover>false</autodiscover>查看server 在cmd中用ipconfig /all 命令查看你的dns server ip 如: DNS Servers . . . . . . . .1.1.1.2四、找到这个标签<postmaster>修改<postmaster>***********************</postmaster>重启服务即可* james中的邮件地址就是对应的用户@你的servername,如:*******************在C:\WINDOWS\system32\drivers\etc\hosts127.0.0.1 这个后可以向外网发送邮件但是在局域网内不能收到外网发送过来的邮件:原因:内网通过路由器访问到外网,而外网只认识路由器的地址。
手动搭建apachejames邮件服务器,实现邮件功能
⼿动搭建apachejames邮件服务器,实现邮件功能最近⼀直在搞邮件这块,本来我们邮件发送是⽤的腾讯免费的企业邮箱,邮件功能没有问题,但是由于邮件的限制,如下:这些限制导致我们的部分客户是收不到邮件的,哪怕付费,这样的固定频率限制也是⽆法解决的,可以说我们国内的邮件⼚商都是这样,⽽国外的却要收费。
那么问题来了,如何突破发送邮件的频率限制?1. 成为该企业⽤户的⽩名单,也就是说有关系,让邮件⼚商后台开放就⾏2. ⾃⼰搭建邮件服务器,其实这个就是最实在的周末花了两天时间搭建了邮件服务器,也⾛了不少弯路,那么咱们今天就来说说我⾃⼰搭了两款,⼀款是sendMail,这个搭建过程⼗分简单,⼀步⼀步安装,然后解析⼀下域名就能发送,sendMail只限于linux部署⽽我们做java的接触的最多的就是apache的各⼤开源组件,⽽apache恰恰提供了邮件服务,那就是jamesjames⽬前已经更新到了3.0的beta5版本,这个版本不是稳定版的⽽且在jdk7+会有bug存在,我也试过的确会报错既然3.0还没有稳定版本并且带有bug,⽽我们仅仅只需要收发邮件,那么使⽤2.3的稳定版本是当然没有问题的好!那我们现在开始使⽤jame2.3.2的稳定版本来做我们的邮件服务器:⾸先需要在linux上安装jdk,我们使⽤的是JDK7(安装步骤略)邮件服务器的smtp使⽤25端⼝,必须保证此端⼝没有被占⽤如果被占⽤了,关闭即可推荐如下命令:#service postfix stop#chkconfig postfix off使⽤ftp⼯具把james-2.3.2的压缩包上传⾄服务器:解压缩并且重命名后:进⼊bin⽬录,并且运⾏run.sh哎哟,发现报错,没有这个命令没关系,我们给phoenix.sh加上权限即可然后服务器启动成功!接下来我们就来进⾏james的相关配置:ctrl+c 可以退出运⾏着的后台,然后我们进⼊以下⽬录修改config.xml这个配置⽂件找到并且修改这段配置改为:autodetct:true 表⽰⾃动侦测主机名,设成false会使⽤指定的server nameautodetectIP:true 表⽰会为你的servername加上ip,所以直接false就⾏servername就改成你所需要的域名就⾏注释掉此段代码配置DNS Server,查看DNS再查看主机dns然后再设置如下:找到并且注释这段代码然后再修改hosts然后我们在来优化⼀下James内存使⽤,修改此⽬录下的这个⽂件改成此配置即可最后在bin下的phoenix.sh中添加如下配置配置完后reboot⼀下computer rebooting... ...重启完后启动james,sh run.sh这个时候启动完毕,james配置成功。
用JAMES实现自己的邮件服务器
简介James 是一个企业级的邮件服务器,它完全实现了smtp 和pops 以及nntp 协议。
同时,james服务器又是一个邮件应用程序平台。
James的核心是Mailet API,而james 服务齐是一个mailet的容器。
它可以让你非常容易的实现出很强大的邮件应用程序。
James开源项目被广泛的应用于与邮件有关的项目中。
你可以通过它来搭建自己的邮件服务器。
我们可以利用Mailet API,编程接口来实现自己所需的业务。
James集成了Avalon 应用程序框架以及Phoenix Avalon 框架容器。
Phoenix为james 服务器提供了强大的支持。
需要说明的是Avalon开源项目目前已经关闭。
快速上手安装james我这次使用的安装包是james 2.3.1。
大家可以从这里下载到/download.cgi现在让我们开始我们激动人心的james之旅。
首先我们将james-binary-2.3.1.zip解压缩下载到你的安装目录。
我们可以把这个过程理解为安装的过程。
我在这里将它解压到c:\.并且把它改名为james.这样我们的james就安装好了。
目录为C:\james。
很简单吧!准备知识-学习一些必要的知识在我使用james的时候让我感觉首先理解james的应用程序结构是很重要的。
否则你会在使用中感到很困惑。
它的应用程序结构是这样的:James|_ _apps|_ _bin|_ _conf|_ _ext|_ _lib|_ _logs|_ _tools我们重点介绍一下两个文件夹bin 和 apps.bin目录中的run.bat和run.sh是James的启动程序。
只要记住这个重要文件就可以。
启动之后控制台显示如下:Using PHOENIX_HOME: C:\jamesUsing PHOENIX_TMPDIR: C:\james\tempUsing JAVA_HOME: C:\j2sdk1.4.2_02Phoenix 4.2James Mail Server 2.3.1Remote Manager Service started plain:4555POP3 Service started plain:110SMTP Service started plain:25NNTP Service started plain:119FetchMail DisabledApps 目录下有个james的子目录这个目录是它的核心。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1,找到<users-store>标签
将下边的这种文件存储方式注释
<repository name="LocalUsers" class="ersFileRepository">
<destination URL="file://var/users/"/>
</repository>
把下边的数据库存储方式的注释打开或者新增
<repository name="LocalUsers" class="errepository.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/下。