文档章节

java邮件服务器james

1527
 1527
发布于 2016/06/29 17:09
字数 693
阅读 159
收藏 4

今天尝试使用james,尝试了几个版本特别是apache-james-2.3.2.1,但是apache-james-2.3.2.1始终启动不了,启动总是报异常,换到apache-james-2.3.2的时候,正常启动。点击run.bat启动 如图:james-2.3.2正常启动 如果需要关闭ctrl+c

A.启动完成后,进入E:\java\james-2.3.2\apps\james\SAR-INF\config.xml做配置文件修改 1. <postmaster>Postmaster@localhost</postmaster> <servernames autodetect="true" autodetectIP="true">
<servername>localhost</servername>
</servernames> 修改为:
<postmaster>Postmaster@xxxx(任意名字)</postmaster> <servernames autodetect="false" autodetectIP="false">
<servername>xxxx</servername>
</servernames>

2.<mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor">   
    <processor> relay-denied </processor>   
    <notice>550 - Requested action not taken: relaying denied</notice>   
</mailet>  
将其注释
<!--
<mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor">   
    <processor> relay-denied </processor>   
    <notice>550 - Requested action not taken: relaying denied</notice>   
</mailet>  
-->
3.去掉<authRequired>true</authRequired>注释

修改完毕

B.cmd进入命令行,输入 telnet localhsot 4555 进入James管理器,进入后显示 JAMES Remote Administration Tool 2.3.1 Please enter your login and password Login id: login id为root,密码也是root C.创建新用户 创建新用户的命令是:adduser username password 例如 adduser hj hj 账号创建成功后,使用quit退出管理器。现在我们可以开始部署我们的JMail应用了。

发送邮件测试代码: ``` package com.xmaven.mail;

import java.io.IOException; import java.util.Properties;

import javax.mail.Authenticator; import javax.mail.Folder; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Store; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeUtility;

public class HelloJMail {

 //发送邮件  
public static void sendMail() {  
    //String host = "192.168.1.98"; // 指定的smtp服务器,本机的局域网IP  
    String host = "localhost"; // 本机smtp服务器  
    //String host = "smtp.163.com"; // 163的smtp服务器  
    String from = "hj@basjans.com"; // 邮件发送人的邮件地址  
    String to = "pro_jerry@163.com"; // 邮件接收人的邮件地址  
    final String username = "hj";  //发件人的邮件帐户  
    final String password = "hj";   //发件人的邮件密码  

    // 创建Properties 对象  
    Properties props = System.getProperties();  

    // 添加smtp服务器属性  
    props.put("mail.smtp.host", host);  
    props.put("mail.smtp.auth", "true");  

    // 创建邮件会话  
    Session session = Session.getDefaultInstance(props, new Authenticator(){  
        @Override  
        public PasswordAuthentication getPasswordAuthentication() {  
            return new PasswordAuthentication(username, password);  
        }  
          
    });  

    try {  
        // 定义邮件信息  
        MimeMessage message = new MimeMessage(session);  
        message.setFrom(new InternetAddress(from));  
        message.addRecipient(Message.RecipientType.TO, new InternetAddress(  
                to));  
        //message.setSubject(transferChinese("我有自己的邮件服务器了"));  
        message.setSubject("I hava my own mail server");  
        message.setText("From now, you have your own mail server, congratulation!");  

        // 发送消息  
        session.getTransport("smtp").send(message);    
        //Transport.send(message); //也可以这样创建Transport对象发送  
        System.out.println("SendMail Process Over!");  

    } catch (MessagingException e) {  
        e.printStackTrace();  
    }  
}  
  
//接受邮件  
public static void getMail(){  
    String host = "localhost";  
    final String username = "zph";  
    final String password = "zph";  

    // 创建Properties 对象  
    Properties props = new Properties();  

    // 创建邮件会话  
    Session session = Session.getDefaultInstance(props, new Authenticator(){  
        @Override  
        public PasswordAuthentication getPasswordAuthentication() {  
            return new PasswordAuthentication(username, password);  
        }  
          
    });  

      
    try {  
        // 获取邮箱的pop3存储  
        Store store = session.getStore("pop3");  
        store.connect(host, username, password);  

        // 获取inbox文件  
        Folder folder = store.getFolder("INBOX");  
        folder.open(Folder.READ_ONLY);  //打开,打开后才能读取邮件信息  

        // 获取邮件消息  
        Message message[] = folder.getMessages();  

        for (int i=0, n=message.length; i<n; i++) {  
            System.out.println(i + ": " + message[i].getFrom()[0]  
                                           + "\t" + message[i].getSubject());  
            try {  
                message[i].writeTo(System.out);  
            } catch (IOException e) {  
                e.printStackTrace();  
            }  

        }  

        // 关闭资源  
        folder.close(false);  
        store.close();  
          
    } catch (MessagingException e) {  
        e.printStackTrace();  
    }  
      
    System.out.println("GetMail Process Over!");  

}  
  
//邮件主题中文字符转换  
public static String transferChinese(String strText){  
    try{  
        strText = MimeUtility.encodeText(new String(strText.getBytes(), "GB2312"), "GB2312", "B");  
    }catch(Exception ex){  
        ex.printStackTrace();  
    }  
    return strText;  
}  

public static void main(String[] args) {  
    HelloJMail.sendMail();  
    //HelloJMail.getMail();  
}  

}


   希望对同志们有所帮助,一定要选对版本!!!

© 著作权归作者所有

1527

1527

粉丝 9
博文 113
码字总数 45785
作品 0
成都
程序员
私信 提问
Apache James Server 3.0-beta4 发布

Apache James Server 3.0-beta4 发布,Apache James Server 3.0 和 2.3.2 集成了邮件服务器,包括了高级完整的功能特性。Apache James Server 3.0 提供一个 mailet 容器,是基于 Spring 构建...

chaun
2014/07/10
2K
2
James邮件服务器数据库的相关配置

网上很多有关james的基本配置,很有借鉴意义.本文主要说的是james基于mysql: 1 注释掉所有的file://var/mail/找到并去掉注释: db://maildb/ 以下是关于james与mysql的相关配置(需要在lib里面...

彭亚雄
2013/11/17
1K
1
James 3.0-M1 发布,Java邮件服务器

Apache James(Java Apache Mail Enterprise Server)是Apache组织的子项目之一,完全采用纯Java技术开发,实现了SMTP、POP3与NNTP等多种邮件相关协议。 James也是一个邮件应用平台,可以通过...

红薯
2010/11/01
988
1
Apache James 3.0M2 发布

Apache James(Java Apache Mail Enterprise Server)是Apache组织的子项目之一,完全采用纯Java技术开发,实现了SMTP、POP3与NNTP等多种邮件相关协议。 James也是一个邮件应用平台,可以通过...

光石头
2010/11/15
1K
1
java JDK1.8在win10上的环境配置

java JDK1.8在win10上的环境配置 2018年04月14日 10:25:49 ZMS_JAMES 阅读数:3684 版权声明:博客的内容有一部分参考自网络,如有侵权,请联系鄙人删除Email:zmsjames@163.com,当然也欢迎交...

linjin200
2018/12/23
2
0

没有更多内容

加载失败,请刷新页面

加载更多

采坑指南——k8s域名解析coredns问题排查过程

正文 前几天,在ucloud上搭建的k8s集群(搭建教程后续会发出)。今天发现域名解析不了。 组件版本:k8s 1.15.0,coredns:1.3.1 过程是这样的: 首先用以下yaml文件创建了一个nginx服务 apiV...

码农实战
12分钟前
1
0
【2019年8月版本】OCP 071认证考试最新版本的考试原题-第6题

choose three Which three statements are true about indexes and their administration in an Orade database? A) An INVISIBLE index is not maintained when Data Manipulation Language......

oschina_5359
14分钟前
1
0
阿里巴巴开源 Dragonwell JDK 最新版本 8.1.1-GA 发布

导读:新版本主要有三大变化:同步了 OpenJDK 上游社区 jdk8u222-ga 的最新更新;带来了正式的 feature:G1ElasticHeap;发布了用户期待的 Windows 实验版本 Experimental Windows version。...

阿里巴巴云原生
20分钟前
1
0
教你玩转Linux—磁盘管理

Linux磁盘管理好坏直接关系到整个系统的性能问题,Linux磁盘管理常用三个命令为df、du和fdisk。 df df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少...

xiangyunyan
23分钟前
3
0
js 让textarea的高度自适应父元素的高度

textarea按照普通元素设置height是没有作用的,可以这么来设置, 下面给上一段项目代码 JS代码: $.fn.extend({ txtaAutoHeight: function () { return this.each(function () {...

文文1
23分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部