首页 > 解决方案 > 当互联网连接返回java时如何发送电子邮件?

问题描述

我正在做一个项目应该下载一些文件。如果互联网连接出现问题,它将被捕获异常。发生这种情况时,我应该向某些人发送电子邮件。

我需要发送电子邮件,但没有互联网连接,所以我有两个想法:

1-尝试发送电子邮件,但因为我没有连接,我需要保存电子邮件,直到连接返回并再次发送。

2-创建线程并检查连接是否稳定,如果互联网稳定,我将发送电子邮件。

我还有另一个想法是创建一个无限循环来检查互联网连接并发送电子邮件并在连接恢复时结束循环。

任何人都可以帮助吗?

标签: javaemailconnection

解决方案


确实没有必要为稳定的互联网连接添加检查。只要继续尝试发送电子邮件,直到它成功。您的电子邮件通知线程的逻辑似乎非常简单:

long RETRY_DELAY = 60*1000;
boolean emailSent = false;
while(!emailSent ) {
    emailSent = sendEmail();
    if (!emailSent) {
        Thread.sleep(RETRY_DELAY);
    }
}

sendEmail()如果发送电子邮件有任何问题,该方法应返回 false。例如与网络相关的异常。

您可以在其他对象中设置最终状态并添加最大重试次数,或继续重试的最大时间长度,直到您放弃等。这些只会添加更多条件来终止循环。如果有手动中止,您也可以中断该电子邮件线程。


推荐阅读