/
serverName 接收邮件地址
user 用户信息
pwd 密码
path 邮件临时储存路径
max 每次接收邮件的最大数量
/
public int receive(String serverName, String user, String pwd, String path, int max) throws Exception {
//新建ExchangeVersionExchange2007_SP1版本的Exchange服务
ExchangeService service = new ExchangeService(ExchangeVersionExchange2007_SP1);
String[] userInfo = usersplit("/");
//用户认证信息
ExchangeCredentials credentials = new WebCredentials(userInfo[1], pwd,userInfo[0]);
servicesetCredentials(credentials);
//设置Exchange连接的服务器地址
servicesetUrl(new URI(serverName));
//绑定邮箱
Folder inbox = Folderbind(service, WellKnownFolderNameInbox);
//获取邮箱文件数量
int count = inboxgetTotalCount();
if(max > 0) count = count > max max : count;
//循环获取邮箱邮件
ItemView view = new ItemView(count);
FindItemsResults<Item> findResults = servicefindItems(inboxgetId(), view);
for (Item item : findResultsgetItems()) {
EmailMessage message = EmailMessagebind(service, itemgetId());
List<Attachment> attachs = messagegetAttachments()getItems();
try{
if(messagegetHasAttachments()){
for(Attachment f : attachs){
if(f instanceof FileAttachment){
//接收邮件到临时目录
File tempZip = new File(path,fgetName());
((FileAttachment)f)load(tempZipgetPath());
}
}
//删除邮件
messagedelete(DeleteModeHardDelete);
}
}catch(Exception err){
logequals(err);
}
}
return count;
}
界面自己写一下就可以了,把相关的参数传进去就可以了。 这个是我以前写的。用的javamail。 有main方法,测试一下自己的邮件,应该没问题的。希望可以帮到你。注意导入你需要的javamailjar的包 -------------------------------------------------------------- package comfourpanemail; import javautilProperties; import javaxmailAddress; import javaxmailFlags; import javaxmailFolder; import javaxmailMessage; import javaxmailMessagingException; import javaxmailNoSuchProviderException; import javaxmailSession; import javaxmailStore; import javaxmailTransport; import javaxmailinternetAddressException; import javaxmailinternetInternetAddress; import javaxmailinternetMimeMessage; public class TestMail { public static void main(String[] args) { //TestMailsendMail(); //TestMailreceiveMail(); TestMaildeleteMail(); } / send mail / public static void sendMail() { String host = "smtpsinacom";//邮件服务器 String from = "xingui5624@sinacom";//发件人地址 String to = "ilovenumen@vipsinacom";//接受地址(必须支持pop3协议) String userName = "xingui5624";//发件人邮件名称 String pwd = "";//发件人邮件密码 Properties props = new Properties(); propsput("mailsmtphost", host); propsput("mailsmtpauth", "true"); Session session = SessiongetDefaultInstance(props); sessionsetDebug(true); MimeMessage msg = new MimeMessage(session); try { msgsetFrom(new InternetAddress(from)); msgaddRecipient(MessageRecipientTypeTO, new InternetAddress(to));//发送 msgsetSubject("我的测试");//邮件主题 msgsetText("测试内容。。。。。。。");//邮件内容 msgsaveChanges(); Transport transport = sessiongetTransport("smtp"); transportconnect(host, userName, pwd);//邮件服务器验证 transportsendMessage(msg, msggetRecipients(MessageRecipientTypeTO)); Systemoutprintln("send ok"); } catch (AddressException e) { eprintStackTrace(); } catch (MessagingException e) { eprintStackTrace(); } } / receive mail / public static void receiveMail() { String host = "pop3sinacom"; String userName = "xingui5624"; String passWord = ""; Properties props = new Properties(); Session session = SessiongetDefaultInstance(props); sessionsetDebug(true); try { Systemoutprintln("receive"); Store store = sessiongetStore("pop3"); storeconnect(host, userName,passWord);//验证 Folder folder = storegetFolder("INBOX");//取得收件文件夹 folderopen(FolderREAD_WRITE); Message msg[] = foldergetMessages(); Systemoutprintln("邮件个数:" + msglength); for(int i=0; i<msglength; i++) { Message message = msg[i]; Address address[] = messagegetFrom(); StringBuffer from = new StringBuffer(); / 此for循环是我项目测试用的 / for(int j=0; j<addresslength; j++) { if (j > 0) fromappend(";"); fromappend(address[j]toString()); } Systemoutprintln(messagegetMessageNumber()); Systemoutprintln("来自:" + fromtoString()); Systemoutprintln("大小:" + messagegetSize()); Systemoutprintln("主题:" + messagegetSubject()); Systemoutprintln("时间::" + messagegetSentDate()); Systemoutprintln("==================================================="); } folderclose(true);//设置关闭 storeclose(); Systemoutprintln("receive over"); } catch (NoSuchProviderException e) { eprintStackTrace(); } catch (MessagingException e) { eprintStackTrace(); } } / delete mail / public static void deleteMail() { String host = "pop3sinacom"; String userName = "xingui5624"; String passWord = ""; Properties props = new Properties(); //Properties props = SystemgetProperties();这种方法创建 Porperties 同上 Session session = SessiongetDefaultInstance(props); sessionsetDebug(true); try { Systemoutprintln("begin delete "); Store store = sessiongetStore("pop3"); storeconnect(host, userName, passWord);//验证邮箱 Folder folder = storegetFolder("INBOX"); folderopen(FolderREAD_WRITE);//设置我读写方式打开 int countOfAll = foldergetMessageCount();//取得邮件个数 int unReadCount = foldergetUnreadMessageCount();//已读个数 int newOfCount = foldergetNewMessageCount();//未读个数 Systemoutprintln("总个数:" +countOfAll); Systemoutprintln("已读个数:" +unReadCount); Systemoutprintln("未读个数:" +newOfCount); for(int i=1; i<=countOfAll; i++) { Message message = foldergetMessage(i); messagesetFlag(FlagsFlagDELETED, true);//设置已删除状态为true if(messageisSet(FlagsFlagDELETED)) Systemoutprintln("已经删除第"+i+"邮件。。。。。。。。。"); } folderclose(true); storeclose(); Systemoutprintln("delete ok"); } catch (NoSuchProviderException e) { eprintStackTrace(); } catch (MessagingException e) { eprintStackTrace(); } } / reply mail / public static void replyMail() { //test } } 注意:此实现要求邮箱都支持pop3和smtp协议。现在老的网易邮箱都支持(2006年以前注册的),所以的sina的 qq的都可以,雅虎的部分支持,具体的可以在网上搜下把。 ============================================================================== 还有一种办法,也是我以前用到的。 其实最简单的发邮件方式是用Apache的Common组件中的Email组件,封装得很不错。 特简单。首先从Sun的网站上下载JavaMail框架实现,最新的版本是141。然后是JavaBeans Activation Framework,最新版本111,JavaMail需要这个框架。不过如果JDK是16的话就不用下了。16已经包括了JavaBeans Activation Framework。 最后从 >
看你获取什么状态了,你可以自己在写程序时,完成一步,就通过print完成当前步骤的语句,以此判断程序运行后进行到了哪儿,同时catch(Exception e),当出错时也能判断出是哪儿出的问题。
但是否发送成功,这个没法完全作出判断,因为发送地址输入错误,和因网络原因没发过去等原因都属于程序判断不了的错误
以上就是关于java怎么连接exchange收发邮件全部的内容,包括:java怎么连接exchange收发邮件、用java写收发邮件的程序,求助,在线、java发送邮件如何获取状态 比如我发了邮件 ,怎么知道是否发送成功呢 发送邮件后能获取一些状态吗 比等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)