Moritz Petersen
Moritz Petersen

Reputation: 13057

Email body empty in JUnit Test on local Google Appengine

I'm using GAE API 1.7.3 on Mac OS X with JDK 7_10 and the GAE Maven Plugin.

My test is more or less copied from the documentation:

    Properties props = new Properties();
    Session session = Session.getDefaultInstance(props, null);
    Message msg = new MimeMessage(session);
    msg.setFrom(new InternetAddress("[email protected]", "Example.com Admin"));
    msg.addRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]", "Mr. User"));
    msg.setSubject("Your Example.com account has been activated");
    msg.setText(".....");
    Transport.send(msg);

The output is:

Dez 21, 2012 12:24:24 PM com.google.appengine.api.mail.dev.LocalMailService log
INFO: MailService.send
Dez 21, 2012 12:24:24 PM com.google.appengine.api.mail.dev.LocalMailService log
INFO:   From: "Example.com Admin" <[email protected]>
Dez 21, 2012 12:24:24 PM com.google.appengine.api.mail.dev.LocalMailService log
INFO:   To: "Mr. User" <[email protected]>
Dez 21, 2012 12:24:24 PM com.google.appengine.api.mail.dev.LocalMailService log
INFO:   Reply-to: "Example.com Admin" <[email protected]>
Dez 21, 2012 12:24:24 PM com.google.appengine.api.mail.dev.LocalMailService log
INFO:   Subject: Your Example.com account has been activated
Dez 21, 2012 12:24:24 PM com.google.appengine.api.mail.dev.LocalMailService log
INFO:   Body:
Dez 21, 2012 12:24:24 PM com.google.appengine.api.mail.dev.LocalMailService log
INFO:     Content-type: text/plain
Dez 21, 2012 12:24:24 PM com.google.appengine.api.mail.dev.LocalMailService log
INFO:     Data length: 5

The unit test is initialized using:

protected LocalServiceTestHelper helper = new LocalServiceTestHelper(new LocalMailServiceTestConfig());

What's really strange is, that the "Body" is empty, but the "Data length" is 5 (corresponding to the ".....").

Is this normal or what am I doing wrong here?

[Update] It is the same thing, if I use the low-level API:

    MailService service = MailServiceFactory.getMailService();
    service.send(new MailService.Message(from, to, subject, text));

Upvotes: 4

Views: 365

Answers (1)

Robin Green
Robin Green

Reputation: 33063

Have you called setLogMailBody(true) on the LocalMailServiceTestConfig?

Upvotes: 4

Related Questions