protected void fillContent(Message email, Execution execution, JCRSessionWrapper session) throws MessagingException { String text = getTemplate().getText(); String html = getTemplate().getHtml(); List<AttachmentTemplate> attachmentTemplates = getTemplate().getAttachmentTemplates(); try { if (html != null || !attachmentTemplates.isEmpty()) { // multipart MimeMultipart multipart = new MimeMultipart("related"); BodyPart p = new MimeBodyPart(); Multipart alternatives = new MimeMultipart("alternative"); p.setContent(alternatives, "multipart/alternative"); multipart.addBodyPart(p); // html if (html != null) { BodyPart htmlPart = new MimeBodyPart(); html = evaluateExpression(execution, html, session); htmlPart.setContent(html, "text/html; charset=UTF-8"); alternatives.addBodyPart(htmlPart); } // text if (text != null) { BodyPart textPart = new MimeBodyPart(); text = evaluateExpression(execution, text, session); textPart.setContent(text, "text/plain; charset=UTF-8"); alternatives.addBodyPart(textPart); } // attachments if (!attachmentTemplates.isEmpty()) { addAttachments(execution, multipart); } email.setContent(multipart); } else if (text != null) { // unipart text = evaluateExpression(execution, text, session); email.setText(text); } } catch (RepositoryException e) { logger.error(e.getMessage(), e); } catch (ScriptException e) { logger.error(e.getMessage(), e); } }
@Override public void sendAsHtml( String subject, String html, Collection<String> recipients, Map<String, Object> htmlParams) throws Exception { Address[] addresses = new Address[recipients.size()]; Iterator<String> iterator = recipients.iterator(); int i = 0; while (iterator.hasNext()) { addresses[i] = new InternetAddress(iterator.next()); i++; } Template template = configuration.getTemplate(html); Writer writer = new StringWriter(); template.process(htmlParams, writer); BodyPart bodyPart = new MimeBodyPart(); bodyPart.setContent(writer.toString(), "text/html"); Multipart multipart = new MimeMultipart(); multipart.addBodyPart(bodyPart); Message message = new MimeMessage(session); message.setFrom(); message.setRecipients(Message.RecipientType.TO, addresses); message.setSubject(subject); message.setContent(multipart, "text/html"); Transport.send(message); }
public void send( String from, String[] recipientsTo, String[] recipientsCC, String[] recipientsBCC, String subject, String body, String[] files) { try { Properties properties = System.getProperties(); setMailServerProperties(username, password, host, properties); Session session = Session.getInstance( properties, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, password); } }); MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); setAllRecipients(recipientsTo, recipientsCC, recipientsBCC, message); message.setSubject(subject); BodyPart messageBodyPart = new MimeBodyPart(); messageBodyPart.setContent(body, "text/html"); Multipart multipart = new MimeMultipart(); multipart.addBodyPart(messageBodyPart); setAttachments(files, multipart); message.setContent(multipart); Transport.send(message); } catch (MessagingException e) { e.printStackTrace(); } }
public static int sendMail(String toAddr, String ccAddr, String mailTitle, String mailConcept) { Session s = Session.getInstance(SendMail.props, null); s.setDebug(false); Message message = new MimeMessage(s); try { Address from = new InternetAddress(SendMail.SenderEmailAddr); message.setFrom(from); Address to = new InternetAddress(toAddr); message.setRecipient(Message.RecipientType.TO, to); if (ccAddr != null && ccAddr != "") { Address cc = new InternetAddress(ccAddr); message.setRecipient(Message.RecipientType.CC, cc); } message.setSubject(mailTitle); Multipart mainPart = new MimeMultipart(); BodyPart html = new MimeBodyPart(); html.setContent(mailConcept, "text/html;charset=ISO-8859-1"); mainPart.addBodyPart(html); message.setContent(mainPart); message.setSentDate(new Date()); message.saveChanges(); Transport transport = s.getTransport(SendMail.TransprotType); transport.connect(SendMail.SMTPServerName, SendMail.SMTPUserName, SendMail.SMTPPassword); transport.sendMessage(message, message.getAllRecipients()); transport.close(); // System.out.println("发送邮件,邮件地址:"+toAddr); // System.out.println("发送邮件,邮件地址:"+ccAddr); // System.out.println("标题:"+mailTitle); // System.out.println("内容:"+mailConcept); System.out.println("Email Send Success!"); return 1; } catch (Exception e) { System.out.println(e.getMessage()); return -1; } }
public boolean sendMessage() { Properties properties = new Properties(); properties.put("mail.smtp.host", mailHost); properties.put("mail.from", Source); Session session = Session.getInstance(properties, null); try { Message message = new MimeMessage(session); InternetAddress[] addressTO = null; if (this.Destination != null && this.Destination.length() != 0) { StringTokenizer TOList = getTokenizer(this.Destination); addressTO = new InternetAddress[TOList.countTokens()]; for (int i = 0; i < addressTO.length; i++) { addressTO[i] = new InternetAddress(TOList.nextToken()); message.addRecipient(Message.RecipientType.TO, addressTO[i]); } } if (this.MsgCC != null && this.MsgCC.length() != 0) { StringTokenizer CCList = getTokenizer(this.MsgCC); InternetAddress[] addressCC = new InternetAddress[CCList.countTokens()]; for (int i = 0; i < addressCC.length; i++) { addressCC[i] = new InternetAddress(CCList.nextToken()); message.addRecipient(Message.RecipientType.CC, addressCC[i]); } } message.setFrom(new InternetAddress(Source)); message.setSubject(Subject); Content = getHtmlHeader() + Content + getHtmlFooter(); Content = Content.replaceAll("\\{style\\}", MailStyle); BodyPart messageBodyPart = new MimeBodyPart(); messageBodyPart.setText(Content); messageBodyPart.setContent(Content, "text/html"); Multipart multipart = new MimeMultipart(); multipart.addBodyPart(messageBodyPart); Iterator it = this.BinaryAttachments.iterator(); while (it.hasNext()) { ByteArrayDataSource bads = (ByteArrayDataSource) it.next(); messageBodyPart = new MimeBodyPart(); // messageBodyPart.setDataHandler(new DataHandler(new FileDataSource("c:/test/tom.jpg"))); messageBodyPart.setDataHandler(new DataHandler(bads)); messageBodyPart.setFileName(bads.getName()); multipart.addBodyPart(messageBodyPart); } message.setContent(multipart); Transport transport = session.getTransport(addressTO[0]); transport.addConnectionListener(new ConnectionHandler()); transport.addTransportListener(new TransportHandler()); transport.connect(); transport.send(message); return true; } catch (Exception e) { e.printStackTrace(); return false; } }