List of usage examples for javax.mail.internet MimeMultipart addBodyPart
@Override public synchronized void addBodyPart(BodyPart part) throws MessagingException
From source file:com.aurel.track.util.emailHandling.MailBuilder.java
/** * Prepares a plain MimeMessage: the MimeMessage.RecipientType.TO is not yet set * @return//from www. ja v a2 s.c o m * @throws Exception */ private MimeMessage preparePlainMimeMessage(InternetAddress internetAddressFrom, String subject, String plainBody, List<LabelValueBean> attachments) throws Exception { MimeMessage msg = new MimeMessage(session); msg.setFrom(internetAddressFrom); msg.setHeader(XMAILER, xmailer); msg.setSubject(subject.trim(), mailEncoding); msg.setSentDate(new Date()); if (attachments == null || attachments.isEmpty()) { msg.setText(plainBody, mailEncoding); } else { MimeMultipart mimeMultipart = new MimeMultipart(); MimeBodyPart textBodyPart = new MimeBodyPart(); textBodyPart.setText(plainBody, mailEncoding); mimeMultipart.addBodyPart(textBodyPart); if (attachments != null) { includeAttachments(mimeMultipart, attachments); } msg.setContent(mimeMultipart); } return msg; }
From source file:nl.surfnet.coin.teams.util.ControllerUtilImpl.java
@Override public MimeMultipart getMimeMultipartMessageBody(String plainText, String html) throws MessagingException { MimeMultipart multiPart = new MimeMultipart("alternative"); MimeBodyPart textPart = new MimeBodyPart(); textPart.setText(plainText, "utf-8"); MimeBodyPart htmlPart = new MimeBodyPart(); htmlPart.setContent(html, "text/html; charset=utf-8"); multiPart.addBodyPart(textPart); // least important multiPart.addBodyPart(htmlPart); // most important return multiPart; }
From source file:com.enjoyxstudy.selenium.autoexec.mail.MailSender.java
/** * @param runner// w w w. ja v a 2 s. c o m * @param resultDir * @throws MessagingException * @throws IOException */ public void send(MultiHTMLSuiteRunner runner, File resultDir) throws MessagingException, IOException { MimeMessage mimeMessage = new MimeMessage(session); mimeMessage.setHeader("Content-Transfer-Encoding", "7bit"); // To mimeMessage.setRecipients(Message.RecipientType.TO, InternetAddress.parse(config.getTo())); // From mimeMessage.setFrom(new InternetAddress(config.getFrom())); HashMap<String, Object> context = new HashMap<String, Object>(); context.put("result", runner.getResult() ? "passed" : "failed"); context.put("passedCount", new Integer(runner.getPassedCount())); context.put("failedCount", new Integer(runner.getFailedCount())); context.put("totalCount", new Integer(runner.getHtmlSuiteList().size())); context.put("startTime", new Date(runner.getStartTime())); context.put("endTime", new Date(runner.getEndTime())); context.put("htmlSuites", runner.getHtmlSuiteList()); // subject mimeMessage.setSubject(TemplateUtils.merge(config.getSubject(), context), config.getCharset()); // multipart message MimeMultipart content = new MimeMultipart(); MimeBodyPart body = new MimeBodyPart(); body.setText(TemplateUtils.merge(config.getBody(), context), config.getCharset()); content.addBodyPart(body); File resultArchive = createResultArchive(resultDir); MimeBodyPart attachmentFile = new MimeBodyPart(); attachmentFile.setDataHandler(new DataHandler(new FileDataSource(resultArchive))); attachmentFile.setFileName(RESULT_ARCHIVE_FILE); content.addBodyPart(attachmentFile); mimeMessage.setContent(content); // send mail _send(mimeMessage); }
From source file:za.co.jumpingbean.alfresco.repo.EmailDocumentsAction.java
public void addAttachments(final Action action, final NodeRef nodeRef, MimeMessage mimeMessage) throws MessagingException { String text = (String) action.getParameterValue(PARAM_BODY); Boolean convertToPDF = (Boolean) action.getParameterValue(PARAM_CONVERT); MimeMultipart mail = new MimeMultipart("mixed"); MimeBodyPart bodyText = new MimeBodyPart(); bodyText.setText(text);// w ww . j ava 2 s .com mail.addBodyPart(bodyText); Queue<NodeRef> que = new LinkedList<>(); QName type = nodeService.getType(nodeRef); if (type.isMatch(ContentModel.TYPE_FOLDER) || type.isMatch(ContentModel.TYPE_CONTAINER)) { que.add(nodeRef); } else { addAttachement(nodeRef, mail, convertToPDF); } while (!que.isEmpty()) { NodeRef tmpNodeRef = que.remove(); List<ChildAssociationRef> list = nodeService.getChildAssocs(tmpNodeRef); for (ChildAssociationRef childRef : list) { NodeRef ref = childRef.getChildRef(); if (nodeService.getType(ref).isMatch(ContentModel.TYPE_CONTENT)) { addAttachement(ref, mail, convertToPDF); } else { que.add(ref); } } } mimeMessage.setContent(mail); }
From source file:com.synyx.greetingcard.mail.OpenCmsMailService.java
public void sendMultipartMail(MessageConfig config, DataSource ds, String filename) throws MessagingException { log.debug("Sending multipart message " + config); Session session = getSession();//w ww. j a v a 2s .c o m MimeMultipart multipart = new MimeMultipart(); MimeBodyPart html = new MimeBodyPart(); html.setContent(config.getContent(), config.getContentType()); html.setHeader("MIME-Version", "1.0"); html.setHeader("Content-Type", html.getContentType()); multipart.addBodyPart(html); BodyPart messageBodyPart = new MimeBodyPart(); messageBodyPart.setDataHandler(new DataHandler(ds)); messageBodyPart.setFileName(filename); multipart.addBodyPart(messageBodyPart); final MimeMessage message = new MimeMessage(session); message.setContent(multipart); try { message.setFrom(new InternetAddress(config.getFrom(), config.getFromName())); message.addRecipient(Message.RecipientType.TO, new InternetAddress(config.getTo(), config.getToName())); } catch (UnsupportedEncodingException ex) { throw new MessagingException("Setting from or to failed", ex); } message.setSubject(config.getSubject()); // we don't send in a new Thread so that we get the Exception Transport.send(message); }
From source file:com.aurel.track.util.emailHandling.MailBuilder.java
private MimeMessage prepareHTMLMimeMessage(InternetAddress internetAddressFrom, String subject, String htmlBody, List<LabelValueBean> attachments) throws Exception { MimeMessage msg = new MimeMessage(session); msg.setFrom(internetAddressFrom);//from w w w . j a v a 2 s .c o m msg.setHeader(XMAILER, xmailer); msg.setSubject(subject.trim(), mailEncoding); msg.setSentDate(new Date()); MimeMultipart mimeMultipart = new MimeMultipart("related"); BodyPart messageBodyPart = new MimeBodyPart(); //Euro sign finally, shown correctly messageBodyPart.setContent(htmlBody, "text/html;charset=" + mailEncoding); mimeMultipart.addBodyPart(messageBodyPart); if (attachments != null && !attachments.isEmpty()) { LOGGER.debug("Use attachments: " + attachments.size()); includeAttachments(mimeMultipart, attachments); } msg.setContent(mimeMultipart); return msg; }
From source file:com.mylab.mail.OpenCmsMailService.java
public void sendMultipartMail(MessageConfig config, DataSource ds, String filename) throws MessagingException { log.debug("Sending multipart message " + config); Session session = getSession();//from ww w . ja v a 2s. com MimeMultipart multipart = new MimeMultipart(); MimeBodyPart html = new MimeBodyPart(); html.setContent(config.getContent(), config.getContentType()); html.setHeader("MIME-Version", "1.0"); html.setHeader("Content-Type", html.getContentType()); multipart.addBodyPart(html); BodyPart messageBodyPart = new MimeBodyPart(); messageBodyPart.setDataHandler(new DataHandler(ds)); messageBodyPart.setFileName(filename); multipart.addBodyPart(messageBodyPart); final MimeMessage message = new MimeMessage(session); message.setContent(multipart); try { message.setFrom(new InternetAddress(config.getFrom(), config.getFromName())); addRecipientsWhitelist(message, config.getTo(), config.getToName(), config.getCardconfig()); } catch (UnsupportedEncodingException ex) { throw new MessagingException("Setting from or to failed", ex); } message.setSubject(config.getSubject()); // we don't send in a new Thread so that we get the Exception Transport.send(message); }
From source file:com.mylab.mail.OpenCmsMailService.java
public void sendMultipartMail(MessageConfig config, DataSource imageds, String image, DataSource audiods, String audio) throws MessagingException { log.debug("Sending multipart message " + config); Session session = getSession();//from ww w. j a v a 2 s . c o m MimeMultipart multipart = new MimeMultipart(); MimeBodyPart html = new MimeBodyPart(); html.setContent(config.getContent(), config.getContentType()); html.setHeader("MIME-Version", "1.0"); html.setHeader("Content-Type", html.getContentType()); multipart.addBodyPart(html); BodyPart messageBodyPart = new MimeBodyPart(); messageBodyPart.setDataHandler(new DataHandler(imageds)); messageBodyPart.setFileName(image); multipart.addBodyPart(messageBodyPart); messageBodyPart = new MimeBodyPart(); messageBodyPart.setDataHandler(new DataHandler(audiods)); messageBodyPart.setFileName(audio); multipart.addBodyPart(messageBodyPart); final MimeMessage message = new MimeMessage(session); message.setContent(multipart); try { message.setFrom(new InternetAddress(config.getFrom(), config.getFromName())); addRecipientsWhitelist(message, config.getTo(), config.getToName(), config.getCardconfig()); } catch (UnsupportedEncodingException ex) { throw new MessagingException("Setting from or to failed", ex); } message.setSubject(config.getSubject()); // we don't send in a new Thread so that we get the Exception Transport.send(message); }
From source file:org.ktunaxa.referral.server.command.email.SendEmailCommand.java
public void execute(final SendEmailRequest request, final SendEmailResponse response) throws Exception { final String from = request.getFrom(); if (null == from) { throw new GeomajasException(ExceptionCode.PARAMETER_MISSING, "from"); }/* www .j a v a 2s . c o m*/ final String to = request.getTo(); if (null == to) { throw new GeomajasException(ExceptionCode.PARAMETER_MISSING, "to"); } response.setSuccess(false); final List<HttpGet> attachmentConnections = new ArrayList<HttpGet>(); MimeMessagePreparator preparator = new MimeMessagePreparator() { public void prepare(MimeMessage mimeMessage) throws Exception { log.debug("Build mime message"); addRecipients(mimeMessage, Message.RecipientType.TO, to); addRecipients(mimeMessage, Message.RecipientType.CC, request.getCc()); addRecipients(mimeMessage, Message.RecipientType.BCC, request.getBcc()); addReplyTo(mimeMessage, request.getReplyTo()); mimeMessage.setFrom(new InternetAddress(from)); mimeMessage.setSubject(request.getSubject()); // mimeMessage.setText(request.getText()); List<String> attachments = request.getAttachmentUrls(); MimeMultipart mp = new MimeMultipart(); MimeBodyPart mailBody = new MimeBodyPart(); mailBody.setText(request.getText()); mp.addBodyPart(mailBody); if (null != attachments && !attachments.isEmpty()) { for (String url : attachments) { log.debug("add mime part for {}", url); MimeBodyPart part = new MimeBodyPart(); String filename = url; int pos = filename.lastIndexOf('/'); if (pos >= 0) { filename = filename.substring(pos + 1); } pos = filename.indexOf('?'); if (pos >= 0) { filename = filename.substring(0, pos); } part.setFileName(filename); String fixedUrl = url; if (fixedUrl.startsWith("../")) { fixedUrl = "http://localhost:8080/" + fixedUrl.substring(3); } fixedUrl = fixedUrl.replace(" ", "%20"); part.setDataHandler(new DataHandler(new URL(fixedUrl))); mp.addBodyPart(part); } } mimeMessage.setContent(mp); log.debug("message {}", mimeMessage); } }; try { if (request.isSendMail()) { mailSender.send(preparator); cleanAttachmentConnection(attachmentConnections); log.debug("mail sent"); } if (request.isSaveMail()) { MimeMessage mimeMessage = new MimeMessage((Session) null); preparator.prepare(mimeMessage); // overwrite multipart body as we don't need the attachments mimeMessage.setText(request.getText()); ByteArrayOutputStream baos = new ByteArrayOutputStream(); mimeMessage.writeTo(baos); // add document in referral Crs crs = geoService.getCrs2(KtunaxaConstant.LAYER_CRS); List<InternalFeature> features = vectorLayerService.getFeatures( KtunaxaConstant.LAYER_REFERRAL_SERVER_ID, crs, filterService.parseFilter(ReferralUtil.createFilter(request.getReferralId())), null, VectorLayerService.FEATURE_INCLUDE_ATTRIBUTES); InternalFeature orgReferral = features.get(0); log.debug("Got referral {}", request.getReferralId()); InternalFeature referral = orgReferral.clone(); List<InternalFeature> newFeatures = new ArrayList<InternalFeature>(); newFeatures.add(referral); Map<String, Attribute> attributes = referral.getAttributes(); OneToManyAttribute orgComments = (OneToManyAttribute) attributes .get(KtunaxaConstant.ATTRIBUTE_COMMENTS); List<AssociationValue> comments = new ArrayList<AssociationValue>(orgComments.getValue()); AssociationValue emailAsComment = new AssociationValue(); emailAsComment.setStringAttribute(KtunaxaConstant.ATTRIBUTE_COMMENT_TITLE, "Mail: " + request.getSubject()); emailAsComment.setStringAttribute(KtunaxaConstant.ATTRIBUTE_COMMENT_CONTENT, new String(baos.toByteArray())); emailAsComment.setStringAttribute(KtunaxaConstant.ATTRIBUTE_COMMENT_CREATED_BY, securitycontext.getUserName()); emailAsComment.setDateAttribute(KtunaxaConstant.ATTRIBUTE_COMMENT_CREATION_DATE, new Date()); emailAsComment.setStringAttribute(KtunaxaConstant.ATTRIBUTE_COMMENT_CONTENT, new String(baos.toByteArray())); emailAsComment.setStringAttribute(KtunaxaConstant.ATTRIBUTE_COMMENT_CONTENT, new String(baos.toByteArray())); emailAsComment.setBooleanAttribute(KtunaxaConstant.ATTRIBUTE_COMMENT_INCLUDE_IN_REPORT, false); comments.add(emailAsComment); OneToManyAttribute newComments = new OneToManyAttribute(comments); attributes.put(KtunaxaConstant.ATTRIBUTE_COMMENTS, newComments); log.debug("Going to add mail as comment to referral"); vectorLayerService.saveOrUpdate(KtunaxaConstant.LAYER_REFERRAL_SERVER_ID, crs, features, newFeatures); } response.setSuccess(true); } catch (MailException me) { log.error("Could not send e-mail", me); throw new KtunaxaException(KtunaxaException.CODE_MAIL_ERROR, "Could not send e-mail"); } }
From source file:mitm.common.mail.MailUtilsTest.java
@Test public void testUnknownContentTypeMultipartAddPart() throws IOException, MessagingException { MimeMessage message = loadMessage("unknown-content-type-multipart.eml"); MimeMultipart multipart = (MimeMultipart) message.getContent(); BodyPart newPart = new MimeBodyPart(); newPart.setContent("new part", "text/plain"); multipart.addBodyPart(newPart); message.saveChanges();//from ww w.ja v a2 s. com MailUtils.validateMessage(message); File file = new File("test/tmp/testunknowncontenttypemultipartaddpart.eml"); MailUtils.writeMessage(message, file); }