It seems to me that the JavaMail Mock library has dodgy handling of BCC fields. Sending a message with BCC fields makes it possible to read the fields again when receiving the email (!) This is against the definition of BCC, isn’t it?
Session session = Session.getDefaultInstance(mMailProperties, null);
MimeMessage message = new MimeMessage(session);
String body = "body from " + getClass().getName()
+ " @" + Calendar.getInstance().getTime().toString();
message.setContent(body, "plain/text");
message.setRecipients(RecipientType.TO, mTo);
message.setRecipients(RecipientType.BCC, address2 + ", " + address3);
Transport.send(message);
...
store.connect(...);
Folder folder = store.getFolder(...);
folder.open(Folder.READ_WRITE);
javax.mail.Message[] allMessages = folder.getMessages();
for (javax.mail.Message message : allMessages) {
...
Address[] addresses = theMessage.getRecipients(RecipientType.BCC);
The variable ‘addresses’ now hold two entries. Note that Mailbox.get(mTo) works as you’d expect.