项目部署环境:Linux
需要使用到:Apache James邮件服务器
作用:个人笔记以后可以来看看(也可以提供给新手一些帮助)
正式开始。。
提前工作:
需要下载所需要的软件
1.
http://james.apache.org/ (我这里下载的是 apache-james-2.3.2.tar.gz)
2.必须的环境应该有的比如jdk啊,之类的..
3.由于Apache James邮件服务需要用到1024以下的端口,因此请用root用户登录进行部署。
安装过程:
1.把James上传到服务器路径(我用的是/usr/local/)
2.需要使用到命令(这些这就是解压James包,James是可以直接解压使用的)
# cd /usr/local
# tar zxvf james apache-james-2.3.2.tar.gz
# mv james-2.3.2 /usr/local/james
# cd /usr/local/james
# cd bin
# chmod +x run.sh
# chmod +x phoenix
注意不修改可能不能运行
可以运行了
# ./run.sh
好了如果这里你的窗口打印出了一下内容表示你安装正常进行.,这时james已经运行…
注意事项
如果你的窗口不是这样的那表示启动失败,可能的原因有这些。
James 启动时,其SMTP 服务默认在 25 端口启动,POP3 服务默认在 110 端口启动, NNTP 服务默认在 119 端口启动, 请确保这些端口未被占用。Linux下查过这些端口是否被占用的命令是:lsof -i:端口号。
这表示25端口正在被sendmail服务占用
一般RedHat的系统安装时都会默认安装了sendmail邮件服务,因此在部署Apache James时,需要把sendmail关闭。可以通过以下方法来关闭sendmail,以防止系统重启时又自动启动sendmail服务。
1)用chkconfig --list sendmail命令查看sendmail的情况:
[root@susun177 ~]# chkconfig --list sendmail
sendmail 0:关闭 1:关闭 2:启用 3:关闭 4:启用 5:启用 6:关闭
2)通过chkconfig sendmail off命令来关闭sendmail的启动:
[root@susun177 ~]# chkconfig sendmail off
3)这时再用chkconfig --list sendmail命令可以查看到sendmail的所有启动级别都已经关闭了:
[root@susun177 ~]# chkconfig --list sendmail
sendmail 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭
这样,即使重新启动Linux系统,sendmail服务也不会自动启动了。
好了解决了这些问题。再次启动你的James试试应该就能成功了。
修改配置
好了启动成功后会生成一个配置文件config.xml 目录在../james-2.3.2/apps/james/SAR-INF
关键的修改主要是这些:
A.找到<servernames autodetect="true" autodetectIP="true"> 设成
autodetect="false" autodetectIP="false"
autodetct设为true会自动侦测你的主机名,设成false会用你指定的server name。
autodetectIP设为true会为你的servername加上ip。
B.设置servername 将默认的为localhost改成你的server名字 如 smtp.51ly.com:
<servername>smtp.51ly.com</servername>
然后修改Linux的hosts主机设置文件:
[root@susun177 SAR-INF]# vi /etc/hosts
在打开的文件添加一行,然后保存:
192.168.1.177 king.cn king
注意:第一个为IP地址 第二个为主机域名 第三个为主机名称
提示:名字后面应该要加上.com或者.cn这样163等邮件服务器才不会拒绝的。
C.注释掉
<mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor>
<processor> relay-denied </processor>
<notice>550 - Requested action not taken: relaying denied</notice>
</mailet>
D.配置DNS Server,先通过netstat命令查看dns配置
[root@susun177 SAR-INF]# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
找到<dnsserver>,在<servers>里最前面添加一行: <server>192.168.1.0</server> ,同时设置 autodiscover为false。
<dnsserver>
<servers>
<!--Enter ip address of your DNS server, one IP address per server -->
<!-- element. -->
<!--
<server>127.0.0.1</server>
-->
<server>10.168.0.10</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>
<authoritative>false</authoritative>
<!-- Maximum number of entries to maintain in the DNS cache -->
<maxcachesize>50000</maxcachesize>
</dnsserver>
优化(借鉴)
优化一下James内存,在../james/bin/phoenix.sh加入:
# Set Heap Size 2007-0818,fix OutOfMemory bug while transporting big mail
PHOENIX_JVM_OPTS="$PHOENIX_JVM_OPTS -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M"
修改../james/conf/wrapper.conf的jvm配置,设置初始内存128M,最大内存512M
# Initial Java Heap Size (in MB)
#wrapper.java.initmemory=16
wrapper.java.initmemory=128
# Maximum Java Heap Size (in MB)
#wrapper.java.maxmemory=64
wrapper.java.maxmemory=512
还有如果要发送外网邮件需要知道你所在的局域网的外部端口是否被封掉,如果封掉了,和网管说说。
到这里配置就结束了。下面给出Java关键代码。(仅供参考)
try {
//Mails email = getMailsXML(getPath(companyId)); // 从配置文件获取
// 本来是从配置文件获取的,这里测试就暂时把邮件写死
Mails email = new Mails();
email.setSenderEmailAddr("order-update@51ly.com");
email.setSmtpUserName("order-update");
email.setSmtpPassword("123456");
email.setSmtpServerName("smtp.51ly.com");
//MailUtil.props = new Properties();
// 存储发送邮件服务器的信息
//MailUtil.props.put("mail.smtp.host", email.getSmtpServerName());
// 同时通过验证
//MailUtil.props.put("mail.smtp.auth", "true");
// 根据属性新建一个邮件会话,null参数是一种Authenticator(验证程序) 对象
Session s = Session.getInstance(MailUtil.props, null);
// 设置调试标志,要查看经过邮件服务器邮件命令,可以用该方法
s.setDebug(false);
// 由邮件会话新建一个消息对象
Message message = new MimeMessage(s);
// 设置发件人
Address from = new InternetAddress(email.getSenderEmailAddr());
message.setFrom(from);
// 设置收件人
Address to = new InternetAddress("88888888@qq.com");
message.setRecipient(Message.RecipientType.TO, to);
// 设置主题
message.setSubject("测试邮件");
// 设置信件内容
// message.setText(mailConcept);
message.setContent(mailConcept, "text/html;charset=GB2312");
// 设置发信时间
message.setSentDate(new Date());
// 存储邮件信息
Transport transport = s.getTransport("smtp");
// 要填入你的用户名和密码;
transport.connect(email.getSmtpServerName(), email.getSmtpUserName(),
email.getSmtpPassword());
// 发送邮件,其中第二个参数是所有已设好的收件人地址
transport.sendMessage(message, message.getAllRecipients());
transport.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("邮件发送失败,请检查系统邮箱设置! ");
}
好了就写到这里吧,第一次写文章多多包涵,可以给我以后留一个回忆,希望能给初次接触到James的人带来帮助,也希望懂的人,给我提出意见,大家互相学习。。
- 大小: 30.6 KB
- 大小: 14.7 KB
分享到:
相关推荐
总的来说,James邮件服务器是一个强大且灵活的开源解决方案,适合那些需要高度自定义邮件服务的企业或个人。其全Java的实现保证了跨平台兼容性,而Mailet API和Matcher机制则为企业提供了无限的定制可能。通过熟练...
james 邮件服务器 详细配置 关联数据库
### Apache邮件服务器James简单配置详解 #### 背景与简介 Apache James是Apache软件基金会下的一个开源邮件服务器项目,完全基于Java语言构建,具备高度的可配置性和扩展性,同时确保了系统的稳定性。它提供了包括...
Apache James邮件服务器是一款开源的、基于Java的全功能邮件服务器,它支持SMTP、POP3和IMAP协议,为企业和个人提供了一种可靠且可扩展的邮件处理解决方案。在本项目中,我们将探讨如何利用Apache James来实现邮件的...
总结,配置James 3.0.1邮件服务器涉及多个方面,包括服务器协议、存储、用户管理、安全防护、监控和性能调优。每个环节都需要仔细设置,以确保邮件服务的稳定、安全和高效。在实际操作过程中,务必遵循最佳实践,并...
James_邮件服务器配置James_邮件服务器配置James_邮件服务器配置James_邮件服务器配置James_邮件服务器配置James_邮件服务器配置James_邮件服务器配置
Apache James邮件服务器是一款开源的邮件服务器软件,基于Java平台,实现了SMTP、POP3和IMAP4等邮件协议,为企业和个人提供了稳定、可扩展的邮件服务解决方案。本篇将深入探讨如何配置Apache James邮件服务器。 ...
刚进个小公司就让我搭建个服务器,研究了一个星期,总算是搞定了,网上找了很多资料,看了很久也研究了很久,最后总结了下...搭建成功...收发邮件都没问题...不过如果是收邮件的话必须要有注册的域名,也就是公网的域名才...
### Apache James 邮件服务器配置详解 #### 一、背景与动机 随着互联网的发展,邮件作为信息传递的重要工具之一,被广泛应用于个人通讯及企业内部交流。然而,许多公共邮件服务商如163、新浪等为了防止垃圾邮件的...
**James 3.0 邮件服务器及配置详解** James 3.0 是一个开源、免费的邮件服务器软件,它基于Java技术构建,提供SMTP、POP3和IMAP4等标准邮件服务。这款服务器软件适合小型企业和个人使用,具有高度可定制性和灵活性...
Java开源邮件服务器Apache James是基于Java技术构建的一款强大的邮件服务器软件。它的源代码开放,允许开发者深入了解其工作原理,并可根据需求进行定制化开发。Apache James 2.3.2是该项目的某个稳定版本,提供了...
通过对James邮件服务的配置流程进行详细的梳理与讲解,我们不仅了解了如何从零开始搭建一个基本可用的邮件服务器,还掌握了如何根据实际需求对其进行定制化配置的方法。这些知识对于想要自行部署邮件服务器的IT技术...
本讲解将聚焦于James邮件服务器的最新版本——3.0.4 beta,探讨如何配置它来实现内外网的邮件收发功能。James是一个开源的、基于Java的邮件传输代理,提供了邮件服务器的全面解决方案。 首先,让我们理解邮件服务器...
本文将详细介绍如何在Linux CentOS 5.1环境下安装配置Apache James邮件服务器。 首先,我们需要准备以下环境: 1. 操作系统:Linux CentOS 5.1。尽管其他版本的Linux也可能适用,但这里以CentOS 5.1为例。 2. 搭建...
James 是一个开源的邮件服务器软件,它基于 Java 开发,提供了 SMTP、POP3 和 IMAP 协议的支持,使得用户可以构建自己的邮件系统。本文主要介绍如何使用 James 搭建邮件服务器。 首先,你需要从官方下载地址获取 ...
CentOS7 安装 James3.0 邮件服务器详细教程 本文将详细介绍如何在 CentOS7 系统上安装 James3.0 邮件服务器,包括 JDK 安装、MySQL 安装、James3.0 安装等步骤。 一、基础环境搭建 1. 安装 CentOS7 系统 首先...
总的来说,James-2.3.2邮件服务器提供了一个全面的邮件服务解决方案,适合个人、小型组织以及开发人员进行自定义和扩展。其丰富的功能、强大的可扩展性和开源特性,使其在开源邮件服务器领域占有一席之地。
apache james(邮件服务器)配置.经过配置可以向163、qq等邮箱发送邮件
James邮件服务器的配置文件是XML格式,易于理解和修改。管理员可以通过Web管理界面或命令行工具进行服务器的管理和监控,包括添加/删除用户、设置权限、查看日志等。 ### 扩展与集成 由于其基于Java的特性,James...