我正在使用Google App Engine的MailService功能 应用。它在一个应用程序中运行正常,没有任何问题 但是相同的代码在另一个应用程序中不起作用。我无法想象 出来。请帮忙。以下是我用过的代码片段 发送邮件。
public static void sendHTMLEmail(String from, String fromName, String
to, String toName, String subject, String body) {
_logger.info("entering ...");
Properties props = new Properties();
Session session = Session.getDefaultInstance(props, null);
_logger.info("got mail session ...");
String htmlBody = body;
try {
Message msg = new MimeMessage(session);
_logger.info("created mimemessage ...");
msg.setFrom(new InternetAddress(from,
fromName));
_logger.info("from is set ...");
msg.addRecipient(Message.RecipientType.TO, new InternetAddress(
to, toName));
_logger.info("recipient is set ...");
msg.setSubject(subject);
_logger.info("subject is set ...");
Multipart mp = new MimeMultipart();
MimeBodyPart htmlPart = new MimeBodyPart();
htmlPart.setContent(htmlBody, "text/html");
mp.addBodyPart(htmlPart);
_logger.info("body part added ...");
msg.setContent(mp);
_logger.info("content is set ...");
Transport.send(msg);
_logger.info("email sent successfully.");
} catch (AddressException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
System.err.println(e.getMessage());
}
}
当我查看日志(在服务器管理控制台上)时,它会打印出来 声明“内容已设置......”之后,没有任何内容 登录。邮件未发送。有时我得到以下错误 打印上述声明(并且不发送邮件)。
com.google.appengine.repackaged.com.google.common.base.internal.Finalizer getInheritableThreadLocalsField:无法访问 Thread.inheritableThreadLocals。引用终结器线程将 继承线程本地值。
但邮件配额使用量不断增加。
请记住,这在一个应用程序中工作正常,但在其他应用程序中没有。我 在两个应用程序中使用相同的电子邮件地址集(用于和 至)。
我真的很困惑。感谢任何帮助。
谢谢。 Velu
答案 0 :(得分:0)
您是否尝试过记录例外情况?我敢打赌其中一个被抛出 - 你的printStackTrace将无处可去。