最近我在我的gmail帐户中设置了两步验证,我尝试使用JavaMailAPI连接到我的gmail帐户,但它没有连接。我的代码:Propertiesprops=System.getProperties();props.setProperty("mail.store.protocol","imaps");try{Sessionsession=Session.getDefaultInstance(props,null);Storestore=session.getStore("imaps");store.connect("imap.gmail.com","my_account@gmail.c
当我想检查谁用JavaMail向我发送了一封特定的电子邮件时。我可以用Message.getFrom()返回一个Message[]在什么情况下一个复活的消息可以有多个它来自的身份?关于API这对于外发电子邮件更有意义。所以我真的可以,那:Addressfrom=message.getFrom()[0];总是准确地返回1个发送消息的地址?我现在已经实现了类似的东西:Address[]fromAddress=message.getFrom();if(fromAddress==null||fromAddress.length>1){//Don'tProcesstheEmailandNotif
我正在使用java邮件开发IMAP客户端。我们目前需要创建一个“按session分组”功能,用户可以将邮件作为session查看(请参阅gmail如何对回复和转发的邮件进行分组)我能够从服务器检索邮件,但在我收到的邮件部分,回复的邮件与实际邮件“融合”,并被视为实际邮件内容。例如:初始邮件:Thisistheinitialmail.回复邮件:ThisistheresponseMailOnWed,Aug26,2009at4:26PM,[censored]<[censored]@[censored].com>wrote:Thisistheinitialmail.如上所示,没有任
我正在使用JavamailAPI连接到我的IMAP服务器。javax.mail.Folder.idle()一切正常method.当收到新邮件时,我的监听器会被调用。但是问题是永远处于空闲状态,我该如何中断它?如何在不终止Java程序的情况下真正停止监听?我试过在空闲线程上调用Thread.interrupt()。什么都没发生。我的想法用完了。 最佳答案 对该文件夹执行任何操作(从另一个线程)将导致idle()方法立即返回。所以如果你想强行中断它,只需从一个新线程调用close()即可。
我正在尝试阅读我的消息,我可以让它打印标题,但是发件人和内容显示得很有趣。这是我用来显示消息的代码:intj=message.length-1;for(inti=j;i>=0;i--){System.out.println("Message"+(i+1));System.out.println("From:"+message[i].getFrom());System.out.println("Subject:"+message[i].getSubject());try{System.out.println("Body:"+message[i].getContent());}catch(
我已经查阅了Google和Spring文档,但找不到有关接收电子邮件的任何信息。我需要构建一个可以从POP3和IMAP接收电子邮件的客户端(一种未完全成熟的客户端)。我已经在项目中使用Spring,因此首选Spring。很多链接指向James,但虽然它看起来确实是一个不错的项目,但没有提供足够的文档,我什至不确定它是否能满足我的需求,即只是一个能够接收电子邮件的小客户。 最佳答案 Springintegration旨在解决此类问题。特别是它有e-mailreceivingadapters.这是文档中的IMAP示例:
是否可以在不覆盖现有标志的情况下使用java邮件在IMAP邮件消息上设置自定义标志?例如,我需要在已处理消息上设置一个标志“已处理”,而不将其状态更改为SEEN/DELETED或没有邮件客户端干扰此“已处理”标志。然后我需要找到所有没有“已处理”标志的邮件并处理它们,之后它们也被标记为“已处理”。谢谢! 最佳答案 FlagsprocessedFlag=newFlags("processed");folder.setFlags(msgs,processedFlag,true);//ormsg.setFlags(processedFla
我有一个菜单项“重命名”,将F2设置为快捷键。事实上,当菜单显示时,“重命名”旁边会有一个小的“F2”指示。遗憾的是,这不起作用。此加速器触发无响应。当我将加速器更改为CTRL+F2-它起作用了。看来我应该使用InpoutMpa/ActionMap。这样做的问题是我希望它在应用程序的任何地方都能工作,所以我试图将它与顶级JFrame相关联。但是,JFrame没有getInputMap()方法。迷路了。[添加]ks=KeyStroke.getKeyStroke(KeyEvent.VK_F2,0);JMenuItemmi=newJMenuItem("Rename");mi.setAccel
我有一个用于使用imap存档电子邮件的应用程序。此应用程序中还有许多需要存档的imap帐户。在这一刻,应用程序会不时连接到imap帐户并仅下载新电子邮件。我的问题是,每次连接到imap帐户时,它都会验证所有文件夹中的所有电子邮件,并仅下载尚未下载的电子邮件(我为所有电子邮件存储Message-ID,并仅下载具有以下Message-ID的电子邮件未存储)。所以我想知道是否有替代方案,因为验证所有电子邮件需要一些时间(10-20K需要2-5分钟)。我使用JavaMailAPI连接到imap帐户。 最佳答案 javadoc帮助:IMAPF
目前我正在尝试在IMAP电子邮件上设置可见标志,如下所示:messages[EmailNumber].setFlag(Flag.SEEN,true);messages[EmailNumber].saveChanges();其中messages[]是通过加载文件夹中的所有电子邮件(设置为具有读/写访问权限)填充的Message对象数组,EmailNumber是数组中由用户选择的电子邮件计算得出的特定电子邮件在我用电子邮件本身填充的JTable中。然而,这一直在第二行给我这个:javax.mail.IllegalWriteException:IMAPMessageisread-only即使