Вот рабочий пример создания нового электронного письма и представления его на рассмотрение перед отправкой из моего проекта BBSSH.Диалог / всплывающее окно вам не нужно и может удалить.В этом примере мы берем растровое изображение в качестве аргумента и преобразуем его в PNG, который мы прикрепляем к письму.Другой тип контента будет прикреплен аналогично.
Вы можете делать что угодно с симулятором, если код не подписан;однако я думаю, что электронные письма на самом деле не будут отправлены, так как сам симулятор не имеет связи с реальным почтовым сервером.
/**
* Sends feedback, optionally including the provided bitmap as an attachement.
*
* it is the caller's responsibility to ensure that this is invoked
* in a properly synchronized manner.
*
* @param screenshot - if not null, this function prompts
* the user to include the screenshot as an attachment.
*/
public static void sendFeedback(Bitmap screenshot) {
ResourceBundle b = ResourceBundle.getBundle(BBSSHRResource.BUNDLE_ID,
BBSSHRResource.BUNDLE_NAME);
try {
Multipart mp = new Multipart();
Message msg = new Message();
Address[] addresses = {new Address("recipient@example.com", "Recipient Name")};
if (screenshot == null || Dialog.ask(Dialog.D_YES_NO,
b.getString(BBSSHRResource.MSG_FEEDBACK_INCLUDE_SCREENSHOT), Dialog.YES) == Dialog.NO) {
} else {
PNGEncodedImage img = PNGEncodedImage.encode(screenshot);
SupportedAttachmentPart pt = new SupportedAttachmentPart(mp, img.getMIMEType(),
"bbssh-screen.png", img.getData());
mp.addBodyPart(pt);
msg.setContent(mp);
}
msg.addRecipients(RecipientType.TO, addresses);
msg.setSubject("BBSSH Feedback");
Invoke.invokeApplication(Invoke.APP_TYPE_MESSAGES, new MessageArguments(msg));
} catch (AddressException ex) {
Logger.getLogger().log(10, "Unable to send feedback: " + ex.getMessage());
} catch (MessagingException ex) {
Logger.getLogger().log(10, "Unable to send feedback: " + ex.getMessage());
}
}
Если вы хотите отправить сообщение вместо того, чтобы подавать его на рассмотрение вместо Invoke.invokeApplication, вы должны использовать Transport.send (msg);