/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.nifi.processors.email; import org.apache.commons.mail.Email; import org.apache.commons.mail.EmailAttachment; import org.apache.commons.mail.EmailException; import org.apache.commons.mail.MultiPartEmail; import org.apache.commons.mail.SimpleEmail; import org.apache.nifi.stream.io.ByteArrayOutputStream; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import java.io.IOException; public class GenerateAttachment { String from; String to; String subject; String message; String hostName; public GenerateAttachment(String from, String to, String subject, String message, String hostName) { this.from = from; this.to = to; this.subject = subject; this.message = message; this.hostName = hostName; } public byte[] SimpleEmail() { Email email = new SimpleEmail(); try { email.setFrom(from); email.addTo(to); email.setSubject(subject); email.setMsg(message); email.setHostName(hostName); email.buildMimeMessage(); } catch (EmailException e) { e.printStackTrace(); } ByteArrayOutputStream output = new ByteArrayOutputStream(); MimeMessage mimeMessage = email.getMimeMessage(); try { mimeMessage.writeTo(output); } catch (IOException e) { e.printStackTrace(); } catch (MessagingException e) { e.printStackTrace(); } return output.toByteArray(); } public byte[] WithAttachments(int amount) { MultiPartEmail email = new MultiPartEmail(); try { email.setFrom(from); email.addTo(to); email.setSubject(subject); email.setMsg(message); email.setHostName(hostName); int x = 1; while (x <= amount) { // Create an attachment with the pom.xml being used to compile (yay!!!) EmailAttachment attachment = new EmailAttachment(); attachment.setPath("pom.xml"); attachment.setDisposition(EmailAttachment.ATTACHMENT); attachment.setDescription("pom.xml"); attachment.setName("pom.xml"+String.valueOf(x)); // attach email.attach(attachment); x++; } email.buildMimeMessage(); } catch (EmailException e) { e.printStackTrace(); } ByteArrayOutputStream output = new ByteArrayOutputStream(); MimeMessage mimeMessage = email.getMimeMessage(); try { mimeMessage.writeTo(output); } catch (IOException e) { e.printStackTrace(); } catch (MessagingException e) { e.printStackTrace(); } return output.toByteArray(); } }