在Android应用程序中从javax.mail发送邮件

时间:2013-05-21 06:05:09

标签: android smtp broadcastreceiver javax.mail

我正在使用 javax.mail 广播接收器发送邮件。应用程序运行时,应用程序在前台发送邮件。但是当我将应用程序移动到后台时,我收到错误

javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 587;
    java.net.ConnectException: failed to connect to smtp.gmail.com/74.125.25.108 (port 587): connect failed: ENETUNREACH (Network is unreachable)

我确保广播接收器在后台运行。

1 个答案:

答案 0 :(得分:0)

请注意,过去我从Broadcastreceiver处理基于互联网的服务时遇到了麻烦。它会工作一次,下一次失败。这可能是一些简单的事情,如缓慢的3G数据或失败的帖子。 Broadcastreceiver的问题在于它在某些情况下会被GC严格关闭,并不意味着长时间运行。因此,对于可能失败,或需要很长时间或需要重试(如发送电子邮件)的事情,请考虑从广播接收器启动服务,该服务可以在发生故障时继续重试并保持活动状态。不是必需的,但是一个好主意(根据我的经验)。