javax.mail.folder的简单介绍

今天给各位分享javax.mail.folder的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

1、用java写收发邮件的程序,求助,在线2、运用JavaMail收邮件怎么解决3、java email怎么获取收件箱已发送已删除中的邮件 csdn4、关于javamail5、关于javaMail ,解析附件,出现奇葩错误 java.io.IOException: A7 BAD Parse command error,

用java写收发邮件的程序,求助,在线

界面自己写一下就可以了,把相关的参数传进去就可以了。 这个是我以前写的。用的javamail。 有main方法,测试一下自己的邮件,应该没问题的。希望可以帮到你。注意导入你需要的javamail.jar的包 ————————————————————– package com.fourpane.mail; 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; public class TestMail { public static void main(String[] args) { //TestMail.sendMail(); //TestMail.receiveMail(); TestMail.deleteMail(); } /** * send mail */ public static void sendMail() { String host = “smtp.sina.com”;//邮件服务器 String from = “xingui5624@sina.com”;//发件人地址 String to = “ilovenumen@vip.sina.com”;//接受地址(必须支持pop3协议) String userName = “xingui5624”;//发件人邮件名称 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); MimeMessage msg = new MimeMessage(session); try { msg.setFrom(new InternetAddress(from)); msg.addRecipient(Message.RecipientType.TO, new InternetAddress(to));//发送 msg.setSubject(“我的测试………..”);//邮件主题 msg.setText(“测试内容。。。。。。。”);//邮件内容 msg.saveChanges(); Transport transport = session.getTransport(“smtp”); transport.connect(host, userName, pwd);//邮件服务器验证 transport.sendMessage(msg, msg.getRecipients(Message.RecipientType.TO)); System.out.println(“send ok………………………”); } catch (AddressException e) { e.printStackTrace(); } catch (MessagingException e) { e.printStackTrace(); } } /** * receive mail */ public static void receiveMail() { String host = “pop3.sina.com”; String userName = “xingui5624”; String passWord = “******”; Properties props = new Properties(); Session session = Session.getDefaultInstance(props); session.setDebug(true); try { System.out.println(“receive………………………….”); 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; imsg.length; i++) { Message message = msg[i]; Address address[] = message.getFrom(); StringBuffer from = new StringBuffer(); /** * 此for循环是我项目测试用的 */ for(int j=0; jaddress.length; j++) { if (j 0) from.append(“;”); from.append(address[j].toString()); } 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()); System.out.println(“===================================================”); } folder.close(true);//设置关闭 store.close(); System.out.println(“receive over……………………….”); } catch (NoSuchProviderException e) { e.printStackTrace(); } catch (MessagingException e) { e.printStackTrace(); } } /** * delete mail */ public static void deleteMail() { String host = “pop3.sina.com”; String userName = “xingui5624”; String passWord = “******”; Properties props = new Properties(); //Properties props = System.getProperties();这种方法创建 Porperties 同上 Session session = Session.getDefaultInstance(props); session.setDebug(true); try { System.out.println(“begin delete ………..”); 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(“delete ok……………………………”); } catch (NoSuchProviderException e) { e.printStackTrace(); } catch (MessagingException e) { e.printStackTrace(); } } /** * reply mail */ public static void replyMail() { //test } } 注意:此实现要求邮箱都支持pop3和smtp协议。现在老的网易邮箱都支持(2006年以前注册的),所以的sina的 qq的都可以,雅虎的部分支持,具体的可以在网上搜下把。 ============================================================================== 还有一种办法,也是我以前用到的。 其实最简单的发邮件方式是用Apache的Common组件中的Email组件,封装得很不错。 特简单。首先从Sun的网站上下载JavaMail框架实现,最新的版本是1.4.1。然后是JavaBeans Activation Framework,最新版本1.1.1,JavaMail需要这个框架。不过如果JDK是1.6的话就不用下了。1.6已经包括了JavaBeans Activation Framework。 最后从 下载最新的Common Email,版本1.1。 首先在Eclipse中建立一个新的Java工程,然后把JavaMail和Common Email解压缩,在工程中添加解压缩出来的所有Jar的引用。 代码: package org.fourpane.mail; import org.apache.commons.mail.EmailException; import org.apache.commons.mail.HtmlEmail; public class Mail { public static void main(String[] args) { //SimpleEmail email = new SimpleEmail(); HtmlEmail email = new HtmlEmail(); email.setHostName(“smtp.163.com”);//邮件服务器 email.setAuthentication(“xingui5624”, “******”);//smtp认证的用户名和密码 try { email.addTo(“xingui5624@163.com”);//收信者 email.setFrom(“xingui5624@126.com”, “******”);//发信者 email.setSubject(“xingui5624的测试邮件”);//标题 email.setCharset(“UTF-8”);//编码格式 email.setMsg(“这是一封xingui5624的测试邮件”);//内容 email.send();//发送 System.out.println(“send ok……….”); } catch (EmailException e) { e.printStackTrace(); } } } 【如果发送不成功,可能是你的jar包问题,javamail 的jar可能和jdk1.5以上的j2ee的jar冲突。还有就是可能你的邮箱不支持pop3和smtp协议。】

运用JavaMail收邮件怎么解决

javax.mail.Store:该类实现特定邮件协议(如POP3)上的读、写、监视、查找等操作。通过它的getFolder方法打开一个javax.mail.Folder。

javax.mail.Folder:该类用于描述邮件的分级组织,如收件箱、草稿箱。它的open方法打开分级组织,close方法关闭分级组织,getMessages方法获得分级组织中的邮件,getNewMessageCount方法获得分级组织中新邮件的数量,getUnreadMessageCount方法获得分级组织中未读邮件的数量

根据MimeMessage的getFrom和getRecipients方法获得邮件的发件人和收件人地址列表,得到的是InternetAddress数组,根据InternetAddress的getAddress方法获得邮件地址,根据InternetAddress的getPersonal方法获得邮件地址的个人信息。

MimeMessage的getSubject、getSentDate、getMessageID方法获得邮件的主题、发送日期和邮件的ID(表示邮件)。

通过MimeMessage的getContent方法获得邮件的内容,如果邮件是MIME邮件,那么得到的是一个Multipart的对象,如果是一共普通的文本邮件,那么得到的是BodyPart对象。Multipart可以包含多个BodyPart,而BodyPart本身又可以是Multipart。BodyPart的MimeType类型为“multipart/*”时,表示它是一个Mutipart。

javax.mail.folder的简单介绍

java email怎么获取收件箱已发送已删除中的邮件 csdn

其实删除邮件很简单,在接收邮件的基础上对需要删除的邮件做一个标记(Flags类),然后程序就会对有做了标记的邮件进行删除。

在Flags类的内部类Flag中预定义了一些标志:

Flags.Flag.ANSWERED

Flags.Flag.DELETED (删除的标记,这一讲我们就要用到这个标记)

Flags.Flag.DRAFT

Flags.Flag.FLAGGED

Flags.Flag.RECENT

Flags.Flag.SEEN

Flags.Flag.USER

删除邮件:message[i].setFlag(Flags.Flag.DELETED, true);

讲到这里我想大家都已经想到删除一封邮件的程序到底怎样写了。

不过有一点要注意的,上一讲我们打开Folder的时候是用READ_ONLY,当然读文件用READ_ONLY是做够的,但是我要这一讲要做的操作时删除文件,READ_ONLY是没有删除邮件的权限,所以我们要改为READ_WRITE。

如果要检查某个邮件是否标记了Flags.Flag.DELETED,可以使用message[i].isSet(Flags.Flag DELETED)

注意:这个删除操作是将邮件彻底删除的,大家要谨慎使用,务必读懂代码再进行操作。不小心删除了重要的邮件,小弟不负责人哦,(*^__^*) 嘻嘻……

这个只是一个很简单的删除邮件,在现实中我们会考虑到删除邮件后会将邮件移动另外一个目录下(如已删除、垃圾箱),这些功能我会在后面会讲!

给个例子大家参考:

import Java.io.BufferedReader;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.util.Properties;

import javax.mail.Flags;

import javax.mail.Folder;

import javax.mail.Message;

import javax.mail.Session;

import javax.mail.Store;

public class DelMail {

public static void main(String[] args) throws Exception {

Properties props = new Properties();

Session session = Session.getDefaultInstance(props);

//取得pop3协议的邮件服务器

Store store = session.getStore(“pop3”);

//连接pop.qq.com邮件服务器

store.connect(“pop.qq.com”, “343820302@qq.com”, “******”);

//返回文件夹对象

Folder folder = store.getFolder(“INBOX”);

//设置读写

folder.open(Folder.READ_WRITE);

//获取信息

Message message[] = folder.getMessages();

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

for(int i=0; imessage.length; i++) {

System.out.println(i + “: ” + message[i].getFrom()[0] + “\t” + message[i].getSubject());

System.out.println(“Do you want to delete message? [YES to delete]”);

String line = br.readLine();

if(line.equals(“YES”)) {

//设置删除标记

message[i].setFlag(Flags.Flag.DELETED, true);

}

}

folder.close(true);

store.close();

}

}

程序最后folder.close(true)执行了才会生效!

关于javamail

popserver,username,password三者缺一不可。

抛开JAVA Mail。你平时去查E-MAIL时候,是不是应该:1.先上E-MAIL网站(GMail还是Yahoo Mail, HotMail)2.在输入用户名(有的需要加@gmail.com有的直接用用户名就行)和密码

那么你查看E-MAIL或发送E-MAIL使用的客户端其实是别人制作的网页客户端。Java Mail让你开发自己的Java客户端用SMTP(Simple Mail Transfer Protocol)协议或POP3(Post Office Protocol)来收发E-MAIL。那么以上的popserver(服务器),username(用户名),password(密码)都必不可少的。用户名和地址没有本质区别,如:用户名如果是abc,那么地址就是abc@hotmail.com,一样的。

关于javaMail ,解析附件,出现奇葩错误 java.io.IOException: A7 BAD Parse command error,

import java.io.FileOutputStream; 

import java.io.IOException; 

import java.util.Properties;

import javax.mail.Address; 

import javax.mail.BodyPart; 

import javax.mail.FetchProfile; 

import javax.mail.Flags; 

import javax.mail.Folder; 

import javax.mail.Message; 

import javax.mail.MessagingException; 

import javax.mail.Multipart; 

import javax.mail.NoSuchProviderException; 

import javax.mail.Part; 

import javax.mail.Session; 

import javax.mail.Store; 

import javax.mail.internet.InternetAddress; 

import javax.mail.internet.MimeMultipart;

/** 

* 邮件接受测试 

*/ 

public class POP3MailReceiverTest {

    public POP3MailReceiverTest() { 

        try { 

            // 1. 设置连接信息, 生成一个 Session 

            Properties props = new Properties(); 

            props.put(“mail.transport.protocol”, “pop3”);// POP3 收信协议 

            props.put(“mail.pop.port”, “110”); 

            // props.put(“mail.debug”, “true”);// 调试

            Session session = Session.getInstance(props);

            // 2. 获取 Store 并连接到服务器 

            Store store = session.getStore(“pop3”); 

            store.connect(“www.easyaq.com”, “hp@earth.org”, “1234”); 

            // 3. 通过 Store 打开默认目录 Folder 

            Folder folder = store.getDefaultFolder();// 默认父目录 

            if (folder == null) {

                System.out.println(“服务器不可用”); 

                return; 

                // System.exit(1); 

            }

//            System.out.println(“默认信箱名:” + folder.getName()); 

// 

//            Folder[] folders = folder.list();// 默认目录列表 

// 

//            System.out.println(“默认目录下的子目录数: ” + folders.length);

            Folder popFolder = folder.getFolder(“INBOX”);// 获取收件箱 

            popFolder.open(Folder.READ_WRITE);// 可读邮件,可以删邮件的模式打开目录 

            // 4. 列出来收件箱 下所有邮件 

            Message[] messages = popFolder.getMessages(); 

            // 取出来邮件数 

            int msgCount = popFolder.getMessageCount(); 

            System.out.println(“共有邮件: ” + msgCount + “封”);

            // FetchProfile fProfile = new FetchProfile();// 选择邮件的下载模式, 

            // 根据网速选择不同的模式 

            // fProfile.add(FetchProfile.Item.ENVELOPE); 

            // folder.fetch(messages, fProfile);// 选择性的下载邮件

            // 5. 循环处理每个邮件并实现邮件转为新闻的功能 

            for (int i = 0; i  msgCount; i++) { 

                Message msg = messages[i];// 单个邮件 

                // 发件人信息 

                Address[] froms = msg.getFrom(); 

                if(froms != null) { 

                    System.out.println(“发件人信息:” + froms[0]); 

                    InternetAddress addr = (InternetAddress)froms[0]; 

                    System.out.println(“发件人地址:” + addr.getAddress()); 

                    System.out.println(“发件人显示名:” + addr.getPersonal()); 

                } 

                News news = new News();// 生成新闻对象 

                System.out.println(“邮件主题:” + msg.getSubject()); 

                news.setTitle(msg.getSubject());

                // getContent() 是获取包裹内容, Part 相当于外包装 

                Multipart multipart = (Multipart) msg.getContent();// 获取邮件的内容, 就一个大包裹, 

                                                                // MultiPart 

                                                                    // 包含所有邮件内容(正文+附件) 

                System.out.println(“邮件共有” + multipart.getCount() + “部分组成”);

                // 依次处理各个部分 

                for (int j = 0, n = multipart.getCount(); j  n; j++) { 

                    System.out.println(“处理第” + j + “部分”); 

                    Part part = multipart.getBodyPart(j);//解包, 取出 MultiPart的各个部分, 每部分可能是邮件内容, 

                    // 也可能是另一个小包裹(MultipPart)

                    // 判断此包裹内容是不是一个小包裹, 一般这一部分是 正文 Content-Type: multipart/alternative 

                    if (part.getContent() instanceof Multipart) { 

                        Multipart p = (Multipart) part.getContent();// 转成小包裹 

                        System.out.println(“小包裹中有” + p.getCount() + “部分”); 

                        // 列出小包裹中所有内容 

                        for (int k = 0; k  p.getCount(); k++) { 

                            System.out.println(“小包裹内容:” + p.getBodyPart(k).getContent()); 

                            System.out.println(“内容类型:” 

                                    + p.getBodyPart(k).getContentType()); 

                            if(p.getBodyPart(k).getContentType().startsWith(“text/plain”)) { 

                                // 处理文本正文 

                                news.setBody(p.getBodyPart(k).getContent() + “”); 

                            } else { 

                                // 处理 HTML 正文 

                                news.setBody(p.getBodyPart(k).getContent() + “”); 

                            } 

                        } 

                    }

                    // Content-Disposition: attachment;    filename=”String2Java.jpg” 

                    String disposition = part.getDisposition();// 处理是否为附件信息 

                    if (disposition != null) {

                        System.out.println(“发现附件: ” + part.getFileName()); 

                        System.out.println(“内容类型: ” + part.getContentType()); 

                        System.out.println(“附件内容:” + part.getContent()); 

                        java.io.InputStream in = part.getInputStream();// 打开附件的输入流 

                        // 读取附件字节并存储到文件中 

                        java.io.FileOutputStream out = new FileOutputStream(part.getFileName()); 

                        int data; 

                        while((data = in.read()) != -1) { 

                            out.write(data); 

                        } 

                        in.close(); 

                        out.close(); 

                    } 

                } 

                // } 

                // TODO newsDAO.save(news); // 将邮件所携带的信息作为新闻存储起来

                // 6. 删除单个邮件, 标记一下邮件需要删除, 不会真正执行删除操作 

                // msg.setFlag(Flags.Flag.DELETED, true); 

            }

            // 7. 关闭 Folder 会真正删除邮件, false 不删除 

            popFolder.close(true); 

            // 8. 关闭 store, 断开网络连接 

            store.close(); 

        } catch (NoSuchProviderException e) { 

            // TODO Auto-generated catch block 

            e.printStackTrace(); 

        } catch (Exception e) { 

            // TODO Auto-generated catch block 

            e.printStackTrace(); 

        } 

    }

    /** 

     * @param args 

     */ 

    public static void main(String[] args) { 

        new POP3MailReceiverTest();

    }

}

关于javax.mail.folder和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年4月3日 11:32:45
下一篇 2024年4月3日 11:45:02

相关推荐

  • 网络安全知识宣讲会通知的简单介绍

    广州网络安全宣传周主题线上宣讲会时间+直播入口 1、月14日至9月20日,以“网络安全为人民、网络安全靠人民”为主题的年广州市网络安全宣传周活动将正式启动。 2、网络安全宣传周主题线上宣讲会时间:9月14日15:00直播入口:点击进入9月14日至9月20日,以“网络安全为人民、网络安全靠人民”为主题的年广州市网络安全宣传周活动将正式启动。 3、网易云一年一度…

    2024年5月20日
    6500
  • excel2003模板下载的简单介绍

    excel表格模板下载 启动Excel,在顶部选择【文件】-【新建】,在右侧可以看到很多的模板分类。在模板分类中选择你想使用的类型,点击后选择具体你想用的表格模板,在右侧点击【下载】按钮。 必备EXCEL和模板免费下载 链接: https://pan.baidu.com/s/1R-Ug_SRrb_N9_166fs0pFQ 提取码: r2gr 模板,是指作图或…

    2024年5月20日
    3700
  • domainlinuxcpu的简单介绍

    查看linux的cpu和内存 1、要查看内存使用情况,可以使用free命令。Free命令会显示系统中的总内存量、已用内存量和可用内存量。用户可以使用free命令来了解系统当前的内存使用情况,并采取措施来优化内存管理。 2、查看内存使用情况:cat /proc/meminfo,查看CPU使用情况:cat /proc/cpuinfo。在系统维护的过程中,随时可能…

    2024年5月20日
    4600
  • linuxroottelnet的简单介绍

    怎么设置root用户使用telnet远程登录linux 1、启用root 默认ubuntu的超级管理员用户(root)是被禁止掉了的,我首先得启用它。输入命令:sudo passwd,然后输入root密码。 2、Telnet 不是很安全,默认的情况之下不允许 root 以 Telnet 进入 Linux/ target=_blankLinux 主机 。 3、…

    2024年5月20日
    3900
  • rxjavamaperror的简单介绍

    rxjava怎么使用普通的 1、普通打印不需要直接操作并口,使用Java的Swing打印库,通过系统的打印驱动程序打印就行了。 2、EventBus比较适合仅仅当做组件间的通讯工具使用,主要用来传递消息。使用EventBus可以避免搞出一大推的interface,仅仅是为了实现组件间的通讯,而不得不去实现那一推的接口。 3、Okhttp的WebSocket使…

    2024年5月20日
    3500
  • java32位64位的简单介绍

    java安装的是64位但是我的世界提示是32位电脑是64位的 1、以前java安装路径默认C:\Program Files (x86)\Java,现在MC启动器识别32和64位的方式改了,路径包含86的就认为是32位的,所以你需要安装路径设置安装到C:\Program Files \Java中才可以正常检测。 2、比如IE,可能有些插件和网站,你有64位的浏…

    2024年5月20日
    3400
  • 女孩学习黑客的简单介绍

    女孩学信息安全好不好学? 1、信息安全专业是非常好的,因为将来所有的公司都会采用网络,而网络特别注重的就是安全,所以女生学这个专业非常的好。因为每天都可以在办公室里工作。是适合女生的。 2、信息安全专业不太适合女生。信息安全专业是本科中最难的专业,所以,这个专业并不是很适合女生学习。 3、女孩学信息安全专业很好就业的。信息安全专业在未来很长的一段时间内都会是…

    2024年5月20日
    3800
  • urlhooklinux的简单介绍

    什么是HOOK技术 软件HOOK即钩子函数,钩子函数是Windows消息处理机制的一部分,通过设置“钩子”,应用程序可以在系统级对所有消息、事件进行过滤,访问在正常情况下无法访问的消息。 Hook编程是指利用钩子技术来实现对程序的控制。钩子技术是一种Windows系统的高级编程技术,它可以截获并处理系统消息、键盘、鼠标等事件,从而实现对程序的控制。 hook…

    2024年5月20日
    2900
  • c语言输出五角星,c语言输出简单的五角星图形

    如何用c语言做一个用*组成的实心五角星? 1、最简单的话,用强大的搜狗输入法吧,输入法里可以找到。includestdio.h int main(void){ printf(★ \n);return 0;} 要是正规点的就用他们对应的ASCII码。 2、设立一个for循环,用一个变量i控制行数,再用一个变量j控制每打印*和 的个数,利用printf函数输出字…

    2024年5月20日
    3800
  • archlinuxmatlab安装教程的简单介绍

    matlab2018b破解版安装教程 1、在win7系统下,是无法正确安装Matlab5。只能安装Matlab10(R2010b)以上版本。 2、下载 matlab 2014 运行安装程序。然后选择使用文件密钥安装,毕竟我们没有账户,而且用户也只想要破解版,然后接受协议,接受协议的图就不不插了,毕竟大家都知道。然后输入文件安装密钥,密钥随便输20个数字。 3…

    2024年5月20日
    3900

发表回复

登录后才能评论



关注微信