java怎么连接exchange收发邮件

java怎么连接exchange收发邮件,第1张

/

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发送邮件如何获取状态 比如我发了邮件 ,怎么知道是否发送成功呢 发送邮件后能获取一些状态吗 比等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9753566.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存