首页 > 技术文章 > JavaMail邮箱配置(工作备份)

jiangyaqiong 2014-06-10 14:30 原文

一。下载apache-james-2.3.2.zip,解压到纯英文目录,我的目录:E:\java\james-2.3.2

二。双击E:\java\james-2.3.2\bin目录下的run.bat,显示下图

则证明james服务正常开启

三。进入CMD命令界面,输入telnet localhost 4555命令

如果出现telnet不是内部或外部命令错误,则

1.查看该目录C:\Windows\System32下是否有telnet.exe,如果没有,则复制一个

下载地址:

http://www.90qh.com/down/win03_telnet.rar

源自:http://www.90qh.com/html_119.html

2.出现下图,证明成功

登录的id和密码默认都是root,在E:\java\james-2.3.2\apps\james\SAR-INF下的config.xml中是可配置的

3.通过add username password命令添加用户

四。代码。

  1 package com.wfms.test.test;
  2 
  3 import java.util.Properties;
  4 
  5 import javax.mail.Folder;
  6 import javax.mail.Message;
  7 import javax.mail.Session;
  8 import javax.mail.Store;
  9 import javax.mail.Transport;
 10 import javax.mail.internet.InternetAddress;
 11 import javax.mail.internet.MimeMessage;
 12 
 13 public class MyFirstMail {
 14     protected Session mailSession;
 15 
 16     public static void main(String[] args) {
 17         try {
 18             new MyFirstMail().sendMail();
 19             System.out.print("邮件已发");
 20             // new MyFirstMail().getMail();
 21         } catch (Exception e) {
 22             e.printStackTrace();
 23         }
 24     }
 25 
 26     // // 初始化服务器环境
 27     // public void init() throws Exception {
 28     //
 29     // }
 30 
 31     public void sendMail() throws Exception {
 32         String host = "localhost";// 本机smtp服务器
 33         String from = "jyq@localhost";// 发件人
 34         String to = "zgk@localhost";// 收件人
 35         String username = "jyq";
 36         String password = "123456";
 37         Properties props = new Properties();
 38         props.put("mail.transport.protocol", "smtp");
 39         props.put("mail.smtp.host", "localhost");
 40         props.put("mail.smtp.port", "25");
 41         mailSession = Session.getDefaultInstance(props, null);
 42         try {
 43             Message msg = new MimeMessage(mailSession);
 44             // 设置发送者, 从哪里发的邮件
 45             msg.setFrom(new InternetAddress(from));
 46             // 发送到目标邮件(接受者)
 47             msg.setRecipients(Message.RecipientType.TO,
 48                     InternetAddress.parse(to));
 49             // 抄送的接收者
 50             msg.setRecipients(Message.RecipientType.CC,
 51                     InternetAddress.parse("yqt@wanzhao.com"));
 52             // 暗送的接收者
 53             // msg.setRecipients(Message.RecipientType.BCC,
 54             // InternetAddress.parse("wang@localhost"));
 55             // 设置发送时间
 56             msg.setSentDate(new java.util.Date());
 57             // 设置邮件标题
 58             msg.setSubject("新邮件测试");
 59             // 设置邮件内容
 60             msg.setText("您有一封新邮件,请查收!");
 61             // 指定协议发送消息的对像
 62             Transport transport = mailSession.getTransport("smtp");
 63             // 发送消息
 64             Transport.send(msg);
 65             System.out.println("SendMail Process Over!!!!");
 66         } catch (Exception e) {
 67             throw e;
 68         }
 69     }
 70 
 71     public void getMail() {
 72         String host = "localhost";
 73         final String username = "zgk";
 74         final String password = "123456";
 75         Properties props = new Properties();
 76         mailSession = Session.getDefaultInstance(props, null);
 77         // 获取邮箱的pop3存储
 78         try {
 79             Store store = mailSession.getStore("pop3");
 80             store.connect(host, username, password);
 81             // 获取inbox文件
 82             Folder folder = store.getFolder("INBOX");
 83             folder.open(Folder.READ_ONLY);
 84             // 打开,打开后才能读取邮件信息
 85             // 获取邮件消息
 86             Message message[] = folder.getMessages();
 87             for (int i = 0, n = message.length; i < n; i++) {
 88                 System.out.println(i + ": " + message[i].getFrom()[0] + "\t"
 89                         + message[i].getSubject());
 90                 message[i].writeTo(System.out);
 91             }
 92             // 关闭资源
 93             folder.close(false);
 94             store.close();
 95 
 96         } catch (Exception e) {
 97             e.printStackTrace();
 98         }
 99         System.out.println("GetMail Process Over!");
100     }
101 }

测试结果:可以发送局域网内的邮件,不能发送外网邮件

推荐阅读