@Override protected void addAttachement(String name, DataHandler data) throws MessagingException { BodyPart attachement = new MimeBodyPart(); attachement.setDataHandler(data); attachement.setFileName(name); attachement.setHeader("Content-ID", "<" + name + ">"); iBody.addBodyPart(attachement); }
/* * Writes/Sends an Email */ public void writeConfirmationEmail( String firstName, String lastName, String username, String password, String email) { String to = email; String from = "*****@*****.**"; String host = "smtp.ilstu.edu"; Properties properties = System.getProperties(); properties.setProperty("mail.smtp.host", host); properties.setProperty("mail.user", "cssumne"); // if needed properties.setProperty("mail.password", "stuC0rb!"); // if needed Session session = Session.getDefaultInstance(properties); try { MimeMessage message = new MimeMessage(session); MimeMultipart multipart = new MimeMultipart("related"); BodyPart messageBodyPart = new MimeBodyPart(); message.setFrom(new InternetAddress(from)); message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); message.setSubject("Profile Created!"); String htmlText = "<h1>Congratulations, " + firstName + " " + lastName + "! Your Profile has been created!</h1>" + "<img src=\"cid:image\">" + "<p>Username: "******"</p>" + "<p>Email: " + email + "</p>" + "<p>Password: "******"</p>" + "<p>Thank You for Joining!</p>"; messageBodyPart.setContent(htmlText, "text/html"); multipart.addBodyPart(messageBodyPart); messageBodyPart = new MimeBodyPart(); DataSource fds; fds = new FileDataSource( "C:\\Users\\Corbin\\Desktop\\Github\\WebDevSemesterProject\\SilentAuction\\web\\resources\\bf_logo.png"); messageBodyPart.setDataHandler(new DataHandler(fds)); messageBodyPart.setHeader("Content-ID", "<image>"); multipart.addBodyPart(messageBodyPart); message.setContent(multipart); Transport.send(message); System.out.println("Sent message successfully...."); } catch (MessagingException mex) { mex.printStackTrace(); } }
protected void addBodyPartHeaders(BodyPart part, String name, MuleMessage message) { Map headers = (Map) message.getProperty(name + MailMessageAdapter.ATTACHMENT_HEADERS_PROPERTY_POSTFIX); if (null != headers) { for (Iterator it = headers.keySet().iterator(); it.hasNext(); ) { try { String key = (String) it.next(); part.setHeader(key, (String) headers.get(key)); } catch (MessagingException me) { logger.error("Failed to set bodypart header", me); } } } }
private Message createMessage(Session session, User user2) throws Exception { MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(email)); message.setRecipient(Message.RecipientType.TO, new InternetAddress(user.getEmail())); message.setSubject("中工精品课程修改密码邮件"); // 创建MimeBodyPart封装正文 MimeBodyPart text = new MimeBodyPart(); Date time = new Date(); String con = "尊敬的" + user.getNickname() + "您好!</br>下面是重置密码的链接,<font color='red'>一个小时之内请点击进入重置密码,否则失效</font>,我会等着你的哦!" + "<div><a href='http://localhost:8080/ExcellentCourse/servlet/ResetPwdServlet?uid=" + user.getId() + "&time=" + time.getTime() + "'>重置密码 uid=" + user.getId() + " time=" + time.getTime() + " </a></div>" + "<img src='cid:logo'/>"; text.setContent(con, "text/html;charset=UTF-8"); // chuangjian image // 创建图片 MimeMultipart mm = new MimeMultipart(); BodyPart image1 = createInlineImagePart(context.getRealPath("images/email/beauty.jpg")); image1.setHeader("Content-ID", "logo"); mm.addBodyPart(text); mm.addBodyPart(image1); mm.setSubType("related"); message.setContent(mm); message.saveChanges(); // message.writeTo(new FileOutputStream("c:\\1.eml")); return message; }
@Override public void marshal(Exchange exchange, Object graph, OutputStream stream) throws NoTypeConversionAvailableException, MessagingException, IOException { if (multipartWithoutAttachment || headersInline || exchange.getIn().hasAttachments()) { ContentType contentType = getContentType(exchange); // remove the Content-Type header. This will be wrong afterwards... exchange.getOut().removeHeader(Exchange.CONTENT_TYPE); byte[] bodyContent = ExchangeHelper.convertToMandatoryType(exchange, byte[].class, graph); Session session = Session.getInstance(System.getProperties()); MimeMessage mm = new MimeMessage(session); MimeMultipart mp = new MimeMultipart(multipartSubType); BodyPart part = new MimeBodyPart(); writeBodyPart(bodyContent, part, contentType); mp.addBodyPart(part); for (Map.Entry<String, Attachment> entry : exchange.getIn().getAttachmentObjects().entrySet()) { String attachmentFilename = entry.getKey(); Attachment attachment = entry.getValue(); part = new MimeBodyPart(); part.setDataHandler(attachment.getDataHandler()); part.setFileName(MimeUtility.encodeText(attachmentFilename, "UTF-8", null)); String ct = attachment.getDataHandler().getContentType(); contentType = new ContentType(ct); part.setHeader(CONTENT_TYPE, ct); if (!contentType.match("text/*") && binaryContent) { part.setHeader(CONTENT_TRANSFER_ENCODING, "binary"); } // Set headers to the attachment for (String headerName : attachment.getHeaderNames()) { List<String> values = attachment.getHeaderAsList(headerName); for (String value : values) { part.setHeader(headerName, value); } } mp.addBodyPart(part); exchange.getOut().removeAttachment(attachmentFilename); } mm.setContent(mp); // copy headers if required and if the content can be converted into // a String if (headersInline && includeHeaders != null) { for (Map.Entry<String, Object> entry : exchange.getIn().getHeaders().entrySet()) { if (includeHeaders.matcher(entry.getKey()).matches()) { String headerStr = ExchangeHelper.convertToType(exchange, String.class, entry.getValue()); if (headerStr != null) { mm.setHeader(entry.getKey(), headerStr); } } } } mm.saveChanges(); Enumeration<?> hl = mm.getAllHeaders(); List<String> headers = new ArrayList<String>(); if (!headersInline) { while (hl.hasMoreElements()) { Object ho = hl.nextElement(); if (ho instanceof Header) { Header h = (Header) ho; exchange.getOut().setHeader(h.getName(), h.getValue()); headers.add(h.getName()); } } mm.saveChanges(); } mm.writeTo(stream, headers.toArray(new String[0])); } else { // keep the original data InputStream is = ExchangeHelper.convertToMandatoryType(exchange, InputStream.class, graph); IOHelper.copyAndCloseInput(is, stream); } }
@SuppressWarnings("unchecked") public void sendMail( String subject, String mensajeHtml, List<DestinoMailTO> correosDestino, String plantilla) { try { Properties props = PropertiesService.getInstance().getProperties("eMail.properties"); Session session = Session.getDefaultInstance(props, null); MimeMultipart rootMultiParte = new MimeMultipart("mixed"); MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); message.setSubject(subject); message.setContent(rootMultiParte); for (DestinoMailTO obj : correosDestino) { if (obj.getEmail() != null && obj.getNombreDestinatario() != null) { message.addRecipient( Message.RecipientType.TO, new InternetAddress(obj.getEmail(), obj.getNombreDestinatario())); } else if (obj.getEmail() != null) { message.addRecipient(Message.RecipientType.TO, new InternetAddress(obj.getEmail())); } } MimeMultipart multiParte = new MimeMultipart("related"); BodyPart bodyPart = new MimeBodyPart(); bodyPart.setContent(multiParte); rootMultiParte.addBodyPart(bodyPart); bodyPart = new MimeBodyPart(); bodyPart.setDataHandler(new DataHandler(new FileDataSource(mensajeHtml))); String contenido = mensajeHtml; bodyPart.setContent(contenido, "text/html"); multiParte.addBodyPart(bodyPart); try { String embebidos = PropertiesService.getInstance() .getPropertie("eMailPlantillas.properties", "enbed." + plantilla); if (embebidos != null) { String[] splited = embebidos.split("\\|"); ArrayList<String> attachmentsEnbebidos = new ArrayList<String>(); for (String string : splited) { attachmentsEnbebidos.add(string); } String[] aux; File file; if (attachmentsEnbebidos != null) for (String enbeds : attachmentsEnbebidos) { aux = enbeds.split(" "); String sss = "plantillas" + File.separator + plantilla + File.separator + aux[1]; URL path = EnvioMail.class.getClassLoader().getResource(sss); file = new File(path.getPath()); bodyPart = new MimeBodyPart(); bodyPart.setHeader("Content-ID", "<" + aux[0] + ">"); bodyPart.setDataHandler(new DataHandler(new FileDataSource(file.getAbsolutePath()))); multiParte.addBodyPart(bodyPart); } } } catch (ClassCastException e) { String attachmentsEnbebidos = (String) PropertiesService.getInstance() .getPropertie("eMailPlantillas.properties", "enbed." + plantilla); String[] aux; File file; if (!Validator.isEmpty(attachmentsEnbebidos)) { aux = attachmentsEnbebidos.split(" "); String sss = "plantillas" + File.separator + plantilla + File.separator + aux[1]; String path = EnvioMail.class.getClassLoader().getResource(sss).getPath(); file = new File(path); bodyPart = new MimeBodyPart(); bodyPart.setHeader("Content-ID", "<" + aux[0] + ">"); bodyPart.setDataHandler(new DataHandler(new FileDataSource(file.getAbsolutePath()))); multiParte.addBodyPart(bodyPart); } } try { String attaches = PropertiesService.getInstance() .getPropertie("eMailPlantillas.properties", "attachment." + plantilla); if (attaches != null) { String[] attachm = attaches.split("\\|"); ArrayList<String> attachments = new ArrayList<String>(); for (String string : attachm) { attachments.add(string); } String[] aux; File file; if (attachments != null) { for (String attach : attachments) { aux = attach.split(" "); String fileStirng = "plantillas" + File.separator + plantilla + File.separator + aux[0]; String path = EnvioMail.class.getClassLoader().getResource(fileStirng).getPath(); URL url = new File(path).toURL(); BodyPart adjunto = new MimeBodyPart(); adjunto.setDataHandler(new DataHandler(url)); adjunto.setFileName(aux[1]); rootMultiParte.addBodyPart(adjunto); } } } } catch (ClassCastException e) { String attachments = (String) PropertiesService.getInstance() .getPropertie("eMailPlantillas.properties", "attachment." + plantilla); String[] aux; File file; if (!Validator.isEmpty(attachments)) { aux = attachments.split(" "); String fileStirng = "plantillas" + File.separator + plantilla + File.separator + aux[0]; String path = EnvioMail.class.getClassLoader().getResource(fileStirng).getPath(); URL url = new File(path).toURL(); BodyPart adjunto = new MimeBodyPart(); adjunto.setDataHandler(new DataHandler(url)); adjunto.setFileName(aux[1]); rootMultiParte.addBodyPart(adjunto); } } Transport.send(message); } catch (Exception e) { e.printStackTrace(); } }