`
Fangrn
  • 浏览: 801117 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

james linux安装记录

阅读更多

James配置邮件系统:
  1>服务器端配置,邮件服务的名字叫myEmail或myEmail.com,服务器管理员名Admin
  首先停止已开启的James邮件服务,然后打开文件James\apps\james\SAR-INF\config.xml。
  Ø 在config.xml文件中,找到Postmaster@localhost, 把此项改为Admin@myEmail,同时,找到位于
  <!-- By default, the servername 'localhost' is specified. This can be removed, if required. -->
  - <!--
   -->
  - <!-- Warning: If you are using fetchpop it is important to include the -->
  - <!-- fetched domains in the server name list to prevent looping. -->
  - <servernames autodetect="true" autodetectIP="true">
  - <!-- CONFIRM?
   -->
   <servername> localhost </servername>
   </servernames>
  的localhost,把此项改为myEmail。这样就可以让其它机器也能访问邮件系统。
  
  Ø DNS配置:找到同上文件中<dnsserver>段中的如下程序段:
  - <dnsserver>
  - <servers>
  - <!-- CONFIRM? -->
  - <!-- Enter ip address of your DNS server, one IP address per server -->
  - <!-- element. The default configuration assumes a DNS server on the localhost. -->
   <server>127.0.0.1</server>
   </servers>
   <authoritative>false</authoritative>
   </dnsserver>
  将127.0.0.1的位置填入DNS服务器的IP地址;
  
  Ø 修改管理员密码:
  找到同上文件中的<administrator_accounts>段,如下程序段
  - <administrator_accounts>
  - <!-- CHECKME!
   -->
  - <!-- Change the default login/password.
   -->
   <account login="root" password="root" />
   </administrator_accounts>
  
  将默认用户名root与密码root修改为需要的值
  
  Ø 修改telnet管理程序登录端口 :(默认为4555)
  找到同上文件中的<remotemanager>段下的port如下程序段
  - <remotemanager>
   <port>4555</port>
  - <!-- Uncomment this if you want to bind to a specific inetaddress
   -->
  - <!--
  将<port>4555</port>之间的端口号4555改为需要的端口。
  
  2> 客户端配置:(略)
  
  3> 帐号管理
  James的账号管理是通过telnet完成的,登录命令为:
  
  telnet myEmail 4555
  
  其中myEmail也可以换成IP,4555是端口号。登录时需要用户名和密码,开始默认的用户名和密码均为root。若登录成功,提示如下:
  JAMES Remote Administration Tool 2.1
  Please enter your login and password
  Login id:
   此时输入root用户名,然后会出现:
   Password:
   输入密码root
  注意:在有些操作系统如Windows2000上,用户输入均不显示。
  
  telnet命令列表:
  
  help
  显示帮助
  Listusers
  列出目前存在的账户
  Countusers
  显示目前存在的账户的数量
  addusers [用户名] [密码]
  添加新用户
  verify [用户名]
  验证特定用户是否存在
  deluser [用户名]
  删除已存在用户
  setpassword [用户名] [密码]
  设置某一用户的密码
  setalias [别名] [用户名]
  从本地将[别名]的所有邮件转寄[用户名]
  unsetalias [别名]
  取消setalias设置
  setforwarding [用户名] [email地址]
  将[用户名]的邮件转寄指定[email地址]
  unsetforwarding [用户名]
  取消setforwarding设置
  user [资源]
  变为另一用户的资源
  shutdown
  停止当前James邮件服务的JVM程序(对于James为后台服务时,用此命令很方便)
  Quit
  断开telnet连接
  
  4>用户信息的数据库存储
  James邮件用户的用户信息默认保存在apps\james\var\users目录下,通过修改配置文件apps\james\SAR-INF\config.xml,可以把用户信息保存到数据库中,配置方法如下:
  假设使用的是MySQL数据库:
  
  第一步:首先将MySQL的驱动程序(例如:mysql-connector-java-3.1.6-bin.jar)考到james的lib目录下(例如:D:\james\lib)
  
  第二步:在MySQL中新建一个数据库mail;
  
  第三步:打开config.xml,找到<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>
  其实如不修改也行,因为文件下面也有实例,不过是用<!-- 和 --> 注释掉的,打开即可;记住把
  <repository name="LocalUsers" class="org.apache.james.userrepository.UsersFileRepository">
   <destination URL="file://var/users/"/>
  </repository>
  用<!-- 和 --> 注释掉;
  通过修改,我们就把用户信息的存储介质从file改成了db,<sqlFile>是指明了在db中的数据表结构及相关数据库信息。
  
  第四步:仍然是config.xml,找到<data-sources>项,默认内容为空,把此项内容修改为:
  <data-source name="maildb" class="org.apache.james.util.mordred.JdbcDataSource">
   <driver>org.gjt.mm.mysql.Driver</driver>
   <dburl>jdbc:mysql://127.0.0.1/mail</dburl>
   <user>root</user>
   <password></password>
   <max>20</max>
  </data-source>
  或打开文件下面实例的<!-- 和 --> 注释
  <driver>是指MySQL的JDBC驱动,注意这个默认的<driver>是有问题的,要改成MySQL的驱动程序中Driver.class的路径,即:
   <driver>com.mysql.jdbc.Driver</driver>
  <dburl>指数据库的访问路径,IP后的mail即MySQL中新建数据库名,接下来是用户名、密码及最大连接数。
  
  再次启动时,james将在mail数据库中自动创建有关用户的表格。
  
   至此,数据库配置完成,启动James,若正常无误,请通过telnet添加一个新用户,比如adduser holen 123456,然后检查MySQL中的mail数据库,下面将有一个表users,这是James根据file://conf /sqlResources.xml的内容创建的。
  通过以上配置,James的用户信息就可以保存在数据库中了。

 

 

 

 

今天要测试自己开发的邮件服务器为什么往外网发送不了邮件的问题,只好先在局域网试试看是程序的问题还是什么其他的问题,于是乎就在弄了一台linux服务器,上面拷贝了一个james mailserver 2.3.1

 

装jdk:》sh jdk-6u11-linux-i586.bin

查看端口占用:》lsof -i:25

 

配置james就不多说了,现在网上很多资料

配置james名字为:

motoplus.com

建用户:

fangrn

本机hosts文件添加:

133.64.140.62	motoplus.com

 发送短信测试

import java.util.*;
import javax.mail.internet.*;
import javax.mail.*;

public class javamail163 {

	public static void main(String[] args) throws AddressException,
			MessagingException {
		Properties mailpro = new Properties();
		mailpro.setProperty("mail.smtp.host", "motoplus.com");
		Session session = Session.getDefaultInstance(mailpro);
		session.setDebug(true);
		MimeMessage msg = new MimeMessage(session);
		msg.setFrom(new InternetAddress("fangrn@fangrn.com"));
		msg.setRecipient(Message.RecipientType.TO, new InternetAddress("fangrn@motoplus.com"));
		msg.setSubject("测试免认证方式发送邮件!!!");
		msg.setText("测试一下,邮件来自fangrn");
		Transport.send(msg);
	}
}

 测试通过了

分享到:
评论

相关推荐

    Linux系统故障诊断与排除--James Kirkland

    这本书是James Kirkland做系统维护工作的结晶.本文档是英文版,很值得仔细研读。 本书详细介绍了Linux系统故障的诊断与排除技巧,是作者长期实践经验的结晶。全书共分15章:第1章介绍系统引导、启动和关闭问题,这是...

    modulus:自动为Flatcar Linux编译内核模块CoreOS Container Linux

    Modulus通过在[ ]中记录和在[ ]中使用的Flatcar Linux开发人员Flatcar内编译内核模块来工作。 此外,由于Flatcar Linux自动更新以确保您的机器安全,因此内核模块很容易过时。 升级操作系统时,Modulus会自动为新...

    saladict-desktop::sparkles::sparkles:桌面划词与翻译工具,聚合了N多词典,功能强大,支持Windows,Mac和Linux

    沙拉桌面基于 ,聚合了N多词典的桌面翻译与划词工具,功能强大,支持Windows,Mac和Linux。预览功能支持的大部分功能多词典切换多种划词方式历史记录红心保存生词剪切板监听(复制翻译)等等...部分截图左击托盘图标...

    scripts_rpiBackup:RaspberryPi的各种脚本,包括自动备份,无人值守更新以及温度查询和记录

    用于自动备份,更新和监视的RaspberryPi脚本 ... 任何想要通过无人值守的自动更新来更新Pi的人(我完全理解支持和反对在基于DebianLinux上使用apt自动更新的观点)。 但是,由于我拥有快速恢复时间的良好备

    AniRem:用于被动检查季节更新的工具,用于proxer.me

    你可以添加您看过的动漫通过他们的ID或URL添加他们从您的观看记录中选择添加它们激活自动季节检查当新季节/ ...发布时,应用程序会通知您在多个设备之间进行安全的端到端加密同步适用于所有桌面平台和Android(由于...

    dcraw-fast:优化 dcraw 的速度

    如果您曾经在 linux 上进行过一些原始图像处理,那么您可能会遇到 dcraw 或其衍生产品之一。 您可能还注意到,与 osx 或 windows 上的闭源变体相比,它的速度慢得难以忍受。 在 4 核 i7-2600K、3.4Ghz 上,开发 5202...

    JAVA上百实例源码以及开源项目源代码

     Java编写的网页版魔方游戏,编译后生成.class文件,然后用HTML去调用,不过运行时候需要你的浏览器安装有运行Class的插件。Java源代码实现部分,比较有意思,也具参考性。像坐标控制、旋转矩阵、定时器、生成图像...

    handpunch:HandPunch生物识别时钟设备的用户软件。-开源

    您是否需要一种集中的方式来在Linux机器中获取http://www.handpunch.com制造的不同访问控制HandPunch单元的记录? handpunch尝试为HandPunch生物识别时钟设备实现一些基本功能,并同意制造商在与Handpunch 2000和...

    JAVA上百实例源码以及开源项目

     Java编写的网页版魔方游戏,编译后生成.class文件,然后用HTML去调用,不过运行时候需要你的浏览器安装有运行Class的插件。Java源代码实现部分,比较有意思,也具参考性。像坐标控制、旋转矩阵、定时器、生成图像...

    java开源包1

    一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用。 Java转C++代码工具 J2C J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-...

    java开源包11

    一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用。 Java转C++代码工具 J2C J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-...

    java开源包2

    一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用。 Java转C++代码工具 J2C J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-...

    java开源包3

    一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用。 Java转C++代码工具 J2C J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-...

    java开源包6

    一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用。 Java转C++代码工具 J2C J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-...

    java开源包5

    一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用。 Java转C++代码工具 J2C J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-...

    java开源包10

    一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用。 Java转C++代码工具 J2C J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-...

    java开源包4

    一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用。 Java转C++代码工具 J2C J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-...

    java开源包8

    一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用。 Java转C++代码工具 J2C J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-...

    java开源包7

    一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用。 Java转C++代码工具 J2C J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-...

Global site tag (gtag.js) - Google Analytics