一。下载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 }
测试结果:可以发送局域网内的邮件,不能发送外网邮件