package com.csair.email;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Flags;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
/**
* javaMail对邮件发送和接收操作
* @author Administrator
* @data Mar 28, 2012
*/
public class TestMail {
public static void main(String[] args)
{
// TestMail.sendMail();
TestMail.receiveMail();
// TestMail.deleteMail();
}
/**
* 发送邮件,注意userName名称要和from保持一致,要不然验证会失败。
* session.setDebug(true);最好开启模式,可以看到具体的流程和过程,如果有错误,也可以知道为什么错了。
*/
public static void sendMail()
{
String host = "smtp.163.com";//邮件服务器
String from = "***@163.com";//发件人地址
String to = "420259856@qq.com";//接受地址(必须支持pop3协议)
String userName = "***";//发件人邮件名称
String pwd = "";//发件人邮件密码
Properties props = new Properties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(props);
session.setDebug(true); //debug模式
MimeMessage msg = new MimeMessage(session);
try {
try {
msg.setFrom(new InternetAddress(from,"中国南方航空"));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
msg.addRecipient(Message.RecipientType.TO, new InternetAddress(to));//发送
msg.setSubject("中国南方航空-南航官网订票");//邮件主题
msg.setText("http://www.csair.com 南航官网订票更轻松,更快捷,更安全。");//邮件内容
msg.saveChanges();
Transport transport = session.getTransport("smtp");
transport.connect(host, userName, pwd);//邮件服务器验证
transport.sendMessage(msg, msg.getRecipients(Message.RecipientType.TO));
System.out.println("发送成功~");
} catch (AddressException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
}
/**
* 接收电子邮件
* 如果验证不通过,可能原因是没有开启userName对应的pop3功能
* 如果不会设置,请参考这里http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=166
*/
public static void receiveMail()
{
String host = "pop3.163.com";
String userName = "***@163.com";
String passWord = "";
Properties props = new Properties();
Session session = Session.getDefaultInstance(props);
session.setDebug(true);
try {
System.out.println("--------------接收开始--------------");
Store store = session.getStore("pop3");
store.connect(host, userName,passWord);//验证
Folder folder = store.getFolder("INBOX");//取得收件文件夹
folder.open(Folder.READ_WRITE);
Message msg[] = folder.getMessages();
System.out.println("邮件个数:" + msg.length);
for(int i=0; i<msg.length; i++)
{
Message message = msg[i];
Address address[] = message.getFrom();
StringBuffer from = new StringBuffer();
/**
* 此for循环是我项目测试用的
*/
for(int j=0; j<address.length; j++)
{
if (j > 0)
from.append(";");
from.append(address[j].toString());
}
System.out.println("");
System.out.println("开始读取第"+i+"封邮件信息");
// System.out.println(message.getMessageNumber());
System.out.println("来自:" + from.toString());
System.out.println("大小:" + message.getSize());
System.out.println("主题:" + message.getSubject());
System.out.println("时间:" + message.getSentDate());
try {
System.out.println("内容:"+ message.getContent());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
folder.close(true);//设置关闭
store.close();
System.out.println("--------------接收完毕--------------");
} catch (NoSuchProviderException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
}
/**
* 删除邮件
*/
public static void deleteMail()
{
String host = "pop3.sina.com";
String userName = "***@sina.com";
String passWord = "***";
Properties props = new Properties();
Session session = Session.getDefaultInstance(props);
session.setDebug(true);
try {
System.out.println("------------开始删除------------");
Store store = session.getStore("pop3");
store.connect(host, userName, passWord);//验证邮箱
Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_WRITE);//设置我读写方式打开
int countOfAll = folder.getMessageCount();//取得邮件个数
int unReadCount = folder.getUnreadMessageCount();//已读个数
int newOfCount = folder.getNewMessageCount();//未读个数
System.out.println("总个数:" +countOfAll);
System.out.println("已读个数:" +unReadCount);
System.out.println("未读个数:" +newOfCount);
for(int i=1; i<=countOfAll; i++)
{
Message message = folder.getMessage(i);
message.setFlag(Flags.Flag.DELETED, true);//设置已删除状态为true
if(message.isSet(Flags.Flag.DELETED))
System.out.println("已经删除第"+i+"邮件。。。。。。。。。");
}
folder.close(true);
store.close();
System.out.println("------------删除完成------------");
} catch (NoSuchProviderException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
很好的邮件处理代码,1.5版本,作为build path放在eclipse里面,就可以用啦! oracle官方推的,很好!jdk1.6版本以上用起来很方便。
javaMail发送邮件 发送成功 收不到邮件 或收到邮件无主题无收件人乱码 查看debug 邮件处理过程发现邮件头没有编译, 内容是base64编码,所以邮箱收不到或者收到的是base64编码后的一堆乱码,
javamail发送、接收邮件详细教程
对javaMail发送邮件进行了详细的说明,具体代码可以实现相应功能;同时对接收邮箱进行了测试连接。
本人学习javamail的时候使用的测试代码,分享给大家
基于javamail的接收邮件示例!!!可以作为参考!!!
java web通过javamail实现邮件的发送接收功能。实现了邮件的发送并带有附件的功能。
基于javamail1.4实现邮件发送,支持多收件人、抄送人、多附件等
代码下载后,直接修改自己邮箱密码,接收者邮箱就可发送成功。其实Java应用程序发送 E-mail 非常简单。
具体实现请看这里 http://blog.csdn.net/qw765811529/article/details/50728788
纯java发送简单邮件的功能,支持嘱性文件的配置,可配多人接收,多个附件,简单。。。
1、打开javamailsystem文件夹,找到javamail.jar可执行文件,双击该执行文件,即可打开Javamail邮件收发系统客户端软件。进入该系统后,首先选择“POP3/SMTP设置”按钮,对收发邮件所需的邮件服务器主机、收发邮件...
javamail所需要的两个jar包。mail.jar,activation.jar 博文链接:https://javeye.iteye.com/blog/153827
本资源是一个集合发送图片,附件,内容,HTML等得JAVAMAIL代码,并且可以同时发送多个附件多个图片,只需填充VO类,即可直接调用并发送邮件,例子已经写好,只要填充上必要值即可,经163,qq,sina测试没有问题,有...
演示如何使用javamail包发送电子邮件,这个实例支持多人接收邮件且可发送多附件(附件名可以为中文)
javamail smtp imap收发电子邮件,发送附件,联系人管理!
JavaMail是Oracle甲骨文开发的Java邮件类API,支持多种邮件协议,这里我们就来看一下Java使用JavaMail API发送和接收邮件的代码示例
本系统主要分为两个模块:邮件发送模块和邮件接收模块。其中,邮件发送模块主要负责发送邮件,并且能够实现多附件上传功能,方便用户发送多种类型的文件。邮件接收模块则负责接收邮件,并将邮件内容以列表的方式展示...
一个简易的用JSP实现邮件的接收与发送的程序,主要使用JavaMail组件,(1)创建一封邮件。(2)创建一个Session对象,以进行用户鉴别,控制对邮箱的存取,发送操作。(3)向一个收件箱列表中的邮箱发送邮件。(4)从...
本段程序实现java通过exchange协议发送和接收邮件功能。实现了发送邮件、接收未读邮件和已读邮件的功能。采用微软官方提供的EWSJavaAPI_1.2.jar包完成此项功能。