1) MailSendClientToMyDomain.java
////////////////////////////////////////////
//由admin@mydomain.com发送到admin@mydomain.com
//实验验证:success
//环境社设置:merak中配置admin@mydomain.com
///////////////////////////////////////////
public class MailSendClientToMyDomain {
protected Session session;//邮件会话
private String sendHost="localhost";//邮件服务器主机名
private String sendProtocol="smtp";//发送邮件协议
private String toAddr="admin@mydomain.com";//这里toAddr可以换成你自己
的邮箱地址
private String fromAddr="admin@mydomain.com";
public void init() throws Exception{//根据配置的JavaMail属性生成邮件会
话session对象
/*
和values。
法*/
协议
Properties props=new Properties();//配置JavaMail属性
Java.util.Properties类是Hashtable的一个子类,设计用于String
keys
Properties对象的用法同Hashtable的用法相象,但是类增加了两个节省时间的方
props.put("mail.transport.protocol",sendProtocol);//指定邮件发送
props.put("mail.smtp.class","com.sun.mail.smtp.SMTPTransport");
//指定支持SMTP协议的Transport具体类,由第三方支持
props.put("mail.smtp.host",sendHost);//指定采用SMTP协议的邮件发送
服务器的IP地址或者主机名
JavaMail属性来创建Session实例
session=Session.getDefaultInstance(props);//根据已经配置的
session.setDebug(true);//运行时输出日志。
}
public void sendMessage(String fromAddr,String toAddr)throws
Exception{//发送邮件方法
Message msg=createSimpleMessage(fromAddr,toAddr);
Transport.send(msg);
}
public Message createSimpleMessage(String fromAddr,String toAddr)
throws Exception{
//构造邮件方法
Message msg=new MimeMessage(session);//根据session对象创建Message
对象
者地址
InternetAddress[] toAddrs=InternetAddress.parse(toAddr,false);
msg.setRecipients(Message.RecipientType.TO,toAddrs);//邮件接收
1
msg.setSentDate(new Date());//设置邮件发送日期
msg.setSubject("Hello!");//设置邮件主题
msg.setFrom(new InternetAddress(fromAddr));//设置发件人地址
msg.setText("How are you getting along recently? I miss you very
much!!!!");//设置邮件正文
return msg;
}
public static void main(String[] args) throws Exception{
MailSendClientToMyDomain client=new MailSendClientToMyDomain();
client.init();
client.sendMessage(client.fromAddr,client.toAddr);
}
}
2) MailReceiveClientFromMydomain.java
////////////////////////////////////////////
//读出由admin@mydomain.com发送到admin@mydomain.com的所有邮件内容
//实验验证:success
//环境社设置:merak中配置admin@mydomain.com
///////////////////////////////////////////
public class MailReceiveClientFromMydomain {
protected Session session;//邮件会话
protected Store store;//store对象
private String receiveHost = "localhost";//接收邮件服务器的主机名
private String receiveProtocol = "imap";//接收邮件协议
private String username = "admin";//邮件用户名
private String password = "1234";//邮件密码
private String toAddr = "admin@mydomain.com";//邮件地址
public void init() throws Exception {//设置JavaMail属性,并创建session
Properties props = new Properties();
props.put("mail.store.protocol", receiveProtocol);
props.put("mail.imap.class", "com.sun.mail.imap.IMAPStore");
session = Session.getDefaultInstance(props);
store = session.getStore(receiveProtocol);
//接收邮件服务器上注册用户的存储空间,参数为接收邮件协议imap
store.connect(receiveHost, username, password);//连接到接收邮件服
务器
}
public void close() throws Exception {
store.close();
}
public void receiveMessage() throws Exception {
browseMessagesFromFolder("inbox");
}
2
public void browseMessagesFromFolder(String folderName) throws
Exception {
Folder folder = store.getFolder(folderName);
//根据folderName,返回store中指定的邮件夹
if (folder == null)
throw new Exception(folderName + "邮件夹不存在!");
browseMessagesFromFolder(folder);
//调用重载方法browseMessagesFromFolder(Folder folder)输出邮件夹中的
信息
{
/*
}
public void browseMessagesFromFolder(Folder folder) throws Exception
folder.open(Folder.READ_ONLY);//打开邮件夹
System.out.println("You have " + folder.getMessageCount()
+ " messages in inbox!");//获得邮件夹中的邮件数目
System.out.println("You have " + folder.getUnreadMessageCount()
+ " unread messages in inbox!");//获得邮件夹中未读邮件的数目
Message[] messages = folder.getMessages();
//从邮件夹中取出邮件,存于数组messages[]中
for (int i = 1; i <= messages.length; i++) {
System.out.println("-------第" + i + "封邮件---------");
folder.getMessage(i).writeTo(System.out);//输出邮件信息
* System.out.println("From:"+messages[i].getFrom()[0]);
* System.out.println("Subject:"+messages[i].getSubject());
* System.out.println("Text:"+messages[i].getContent());
System.out.println();
}*/
for(int i=0;i