Android JavaMail 取消发送电子邮件

3

我在我的应用程序中使用JavaMail实现了发送邮件。但是如何取消正在发送的邮件呢?问题在于,当发送大型电子邮件时,连接被关闭并且应用程序崩溃了。JavaMail无法关闭传输对象。我像这样发送消息:

Transport.send(msg);

请给我建议?


我不理解。如果连接已关闭,则发送操作已中止。您需要做的就是捕获适当的异常。 - user207421
1个回答

0

停止正在进行的消息发送没有简单的方法。您应该能够使用 Thread.interrupt 中断发送线程并中止正在进行的 I/O。


你对哪一部分感到困惑?示例可能与您的应用程序非常不同,因为我不知道您的应用程序如何使用线程。一个线程调用Transport.send。另一个线程需要了解第一个线程的Thread对象,然后在您想要中止发送时调用该线程对象上的interrupt方法。第二个线程如何找到第一个线程取决于您的应用程序。第二个线程可能只想在第一个线程尝试发送而不是其他时间中断第一个线程,因此您也必须处理这个问题。 - Bill Shannon
据我所知,JavaMail使用java.net套接字,这些套接字根据定义是不可中断的。 - user207421
你可能是对的;我不记得了。你可能需要关闭套接字来使I/O中止。通过JavaMail没有办法做到这一点。 - Bill Shannon
@EJP,你有没有想过在套接字关闭时停止发送电子邮件的方法? - nAkhmedov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接