Tag: 邮件

Java Mail超时和connectiontimeout处理

我正在使用JavaMail向SMTP服务器发送电子邮件请求。 我想在我的代码中设置“mail.smtp.connectiontimeout”和“mail.smtp.timeout”属性。 从编程方面来说,我希望在Java中达到超时和/或connectiontimeout操作时捕获它们并相应地处理事情。 在这个意义上的处理,我需要在下次再次重试同一封电子邮件。 如何在Java / JavaMail中处理此问题? 是否可以捕获并处理此超时操作? 编辑 此外,假设我已完成对SMTP服务器的管理访问,是否可以自行模拟/重现此超时操作?

使用IMAP邮寄:如何检测邮件是否已从一个文件夹移动到另一个文件夹?

使用JavaMail API和IMAP,我想知道消息已从文件夹a移动到b。 如何在不增加听众的情况下做到这一点? 我的意思是当我登录帐户并打开文件夹时,我想发现消息的变化。 问题是如果您在文件夹a中有3条消息,其中包含ID 1 2和3,并且您将具有ID 3的消息移动到文件夹B,则消息的ID将更改,并且我们在文件夹B中有一条ID为1的消息。 我的目标是将邮件服务器中的邮件结构与我自己的本地服务器同步。 我必须自己保留所有消息信息,标志等。 因此,在每次登录时,我必须发现对邮件服务器中存储的邮件所做的所有更改。 我可以通过以下方式获取新邮件或未读邮件: Message messages[] = inbox.search(new FlagTerm(new Flags(Flag.RECENT), true)); 或者 Message messages[] = inbox.search(new FlagTerm(new Flags(Flag.SEEN), false)); 但我对新邮件不感兴趣,我也想知道对旧邮件所做的更改,例如我想知道这个: 已在2个月前阅读的邮件已移至另一个文件夹。 我的想法是, 因为uids改变了,我不能用它来识别邮件。 我想我必须使用主题发送者接收日期等邮件信息,构建它们的哈希值并比较每次登录时消息的哈希值。 但它会导致性能问题。

Java Mailing Logic:无法将套接字转换为TLS

在一个应用程序中,我使用java实现了邮件发送逻辑。 我使用smtp.gmail.com超过587 port ,使用有效的Gmail密码和密码。 在开发环境中,一切正常。 但是在生产环境中,我需要使用不同的邮件服务器,例如通过port 25 smtp.xyz.in ,并在该域上使用有效的电子邮件ID和密码。 当我使用以下代码继续SSL启用时: 我收到了一个错误 Could not convert socket to TLS SunCertPathBuilderException: Unable To Find Valid Certification Path To Requested Target ================================================== ===== final ResourceBundle rsbd=ResourceBundle.getBundle(“main/ResourceBundle/Dyna”); // — Attaching to default Session, or we could start a new one props.put(“mail.smtp.host”, smtpServer); props.put(“mail.smtp.auth”, “true”); props.put(“mail.debug”, “true”); props.put(“mail.smtp.port”, port); props.put(“mail.smtp.starttls.enable”,”true”); props.put(“mail.smtp.EnableSSL.enable”,”true”); […]