您的位置:首页 > 其它

‍James发送外网邮件配置

2010-12-08 14:11 381 查看
2010-12-01 15:33
1. 下载James 2.3.1

2、解压,并运行一次。系统会在apps目录下面生成一些初始化的配置文件。如果第一次运行有问题,用netstat检查一下是否有系统默认的端口被占用了,比如110,25等。

3、修改apps/james/SAR-INF/config.xml
①、查找替换所有的localhost为你的域名,比如baobaodi.com
【如果你没有一个域名,那么可以在system32/drivers/etc/hosts文件中添加一个伪域名用于测试,192.168.0.60 baobaodi.com】

②、查找所有autodetect属性,修改为false。
autodetectIP也设为false.

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

④、配置DNS Server
用ipconfig /all查看你的DNS配置,添加到列表中
<dnsserver>
<servers>
<server>202.106.148.1</server>
</servers>
</dnsserver>
如果是伪域名,还需要将本机地址也列进去,最好放到第一位。<server>192.168.0.60</server>

⑤、配置smtp server,pop3 server等
查找所有myMailServer,替换为你的域名。如:
<helloName autodetect="false">myMailServer</helloName>,将myMailServer修改为你的域名。比如:baobaodi.com

如果不配置这一步,会出现504 5.5.2 <myMailServer>: Helo command rejected: need fully-qualified hostname错误。

Apache James是最好用的开源Java邮件服务器之一,在配置smtp服务过程中,有些步骤不对的话邮件就发送不出去。 0.打开james-2.2.0/apps/james/SAR-INF/config.XML文件 1.transport 注释掉
<!--mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor">
<processor> relay-denied </processor>
<notice>550 - Requested action not taken: relaying denied</notice>
</mailet-->
使用smtp认证方式

2.dnsserver
输入服务器的DNS IP,例如:
<server>202.96.134.133</server>
<server>202.96.128.110</server>
<server>202.96.128.68</server>
设置autodiscover为false
如果设置为自动探测的话,在我的机器上会报错:
James.Mailet: RemoteDelivery: Temporary exception delivering mail (Mail1098776398187-0-to-somedomain.com: javax.mail.MessagingException: There are no DNS entries for the hostname somedomain.com. I cannot determine where to send this message.
at org.apache.james.transport.mailets.RemoteDelivery.deliver(RemoteDelivery.java:398)
at org.apache.james.transport.mailets.RemoteDelivery.run(RemoteDelivery.java:912)
at java.lang.Thread.run(Thread.java:534)

3.修改root口令。account login="root" password="mypassword"

4.smtpserver
打开smtp认证
<authRequired>true</authRequired>

5.重新启动James

6.telnet server-name 4555,增加用户

7.就可以用outlook等发送邮件了。

==============================================================

这是我去年在csdn上发的文章,我用的版本是2.1.3的,连外网还没试过,我再试一下
james自带的说明文档很简单,许多地方都是一点带过,光靠看说明文档许多问题是解决不了的
由于james也是apache的子项目,所以他的安装也就是直接解压就可以用了
拿我来说吧,解压到d:/james下,解压后,进入d:/james/apps目录
里面有个james.sar文件,在该文件上点击右键用winrar解压,注意不要修改默认的解压路径
然后进入d:/james-2.1.3/apps/james/sar-inf,里面的config.xml就是james的核心配置文件了

首先更改服务器名,默认都是localhost,要让别人可以用你机器上的服务器,就要改咯 ,我的机器名叫 mrp-cz
<postmaster>postmaster@localhost</postmaster>改成<postmaster>postmaster@mrp-cz</postmaster>
<servername>localhost</servername>改成<servername>mrp-cz</servername>

还有一些pop3和smtp的端口设置这些,一般都不用改动的,用默认值就可以了
在outlook里面设置pop3和smtp地址的时候,不许要写端口号,直接写服务器地址就可以了

下面主要是说一下如果将james跟数据库想连接,以便跟自己的项目紧密结合起来, 在james的说明文件里面说得太简单了,
大家可以参考一下说明文件里面关于repositories的说明
james的数据存放方式有三种:file,db,dbfile
file就是以文件方式储存
db当然是数据库
dbfile我个人感觉一般都不会用它的,它是把消息头用数据库方式存放,而把消息体用文件方式存放

随便说一下拉,拿文件存放来说 d:/james-2.1.3/apps/james/var/mail里面就是存放的信件内容
spool里面是存放的正在处理的信件,而inbox里面是存放的已发送邮件,数据库也是一样

d:/james-2.1.3/apps/james/conf/sqlresources.xml是sql描述文件,里面支持
大部分主流数据库,如果你用的数据库在里面没有,自己增加就是
目前支持mssqlserver,mysql,oracle等主流数据库

好了,开始配置了
先找到config.xml里面的<database-connections>,默认里面是没有实际内容的,只有两个被屏蔽了的例子
我用的ms sql,所以就直接把mssql的那个例子拿来用了, 下面就是我的配置文件,跟jboss差不多
<data-source name="maildb" class="org.apache.james.util.mordred.jdbcdatasource">
<driver>com.microsoft.jdbc.sqlserver.sqlserverdriver</driver>
<dburl>jdbc:microsoft:sqlserver://mit-devserver:1433;databasename=james</dburl>
<user>sa</user>
<password>1</password>
<max>20</max>
</data-source>
name就是该连接的标识,以后设连接就都用它了

然后是邮件的存放设置,找到<inboxrepository>项
默认是<repository destinationurl="file://var/mail/inboxes/" type="mail"/>
屏蔽掉,在它下面有个例子 <repository destinationurl="db://maildb/inbox/" type="mail"/>,激活它

然后是spool,找到<spoolrepository>将默认屏蔽掉
激活<repository destinationurl="db://maildb/spool/spool" type="spool"/>

然后是user,同样将默认的去掉,改成
<repository name="localusers" class="org.apache.james.userrepository.jamesusersjdbcrepository" destinationurl="db://maildb/users">
<sqlfile>file://conf/sqlresources.xml</sqlfile>
</repository>

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: