org.apache.commons.mail.SimpleEmail Java Examples

The following examples show how to use org.apache.commons.mail.SimpleEmail. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: MailSenderDefaultImpl.java    From minsx-framework with Apache License 2.0 7 votes vote down vote up
public void finishInitial() {
    try {
        Integer sslPort = 465;
        simpleEmail = new SimpleEmail();
        simpleEmail.setHostName(this.host);
        simpleEmail.setSmtpPort(this.port);
        simpleEmail.setAuthentication(this.username, this.password);
        simpleEmail.setFrom(this.from);
        simpleEmail.setCharset("UTF-8");
        if (sslPort.equals(this.port)) {
            simpleEmail.setSSLOnConnect(true);
        }
        htmlEmail = new HtmlEmail();
        htmlEmail.setHostName(this.host);
        htmlEmail.setSmtpPort(this.port);
        htmlEmail.setAuthentication(this.username, this.password);
        htmlEmail.setFrom(this.from);
        htmlEmail.setCharset("UTF-8");
        if (sslPort.equals(this.port)) {
            htmlEmail.setSSLOnConnect(true);
        }
    } catch (EmailException e) {
        throw new MailSendException(String.format("Incorrect setting field of [from],cause: %s", e.getMessage()), e);
    }
}
 
Example #2
Source File: MailTest.java    From MaxKey with Apache License 2.0 6 votes vote down vote up
public void test() throws Exception {
String username="[email protected]";
String password="3&8Ujbnm5hkjhFD";
String smtpHost="smtp.exmail.qq.com";
int port=465;
boolean ssl=true;
String senderMail="[email protected]";

Email email = new SimpleEmail();
email.setHostName(smtpHost);
email.setSmtpPort(port);
email.setAuthenticator(new DefaultAuthenticator(username, password));
email.setSSLOnConnect(ssl);
email.setFrom(senderMail);
email.setSubject("One Time PassWord");
email.setMsg("You Token is "+111+" , it validity in "+5 +" minutes");
email.addTo("[email protected]");
email.send();
}
 
Example #3
Source File: EmailManager.java    From gameserver with Apache License 2.0 6 votes vote down vote up
/**
 * Send a verification email to the user's email account if exist.
 * 
 * @param user
 */
public void sendNormalEmail(String subject, String content, String[] addresses ) {
	if ( StringUtil.checkNotEmpty(subject) && StringUtil.checkNotEmpty(content) ) {
		try {
			String emailSmtp = GameDataManager.getInstance().getGameDataAsString(GameDataKey.EMAIL_SMTP, "mail.xinqihd.com");
			SimpleEmail email = new SimpleEmail();
			email.setHostName(emailSmtp);
			email.setAuthenticator(new DefaultAuthenticator(EMAIL_FROM, "xinqi@2012"));
			email.setFrom(EMAIL_FROM);
			email.setSubject(subject);
			email.setMsg(content);
			email.setCharset("GBK");
			for ( String address : addresses) {
				if ( StringUtil.checkNotEmpty(address) ) {
					email.addTo(address);
				}
			}
			email.send();
		} catch (EmailException e) {
			logger.debug("Failed to send normal email", e);
		}
	}
}
 
Example #4
Source File: EmailService.java    From gsn with GNU General Public License v3.0 6 votes vote down vote up
/**
 * This method cover most of the cases of sending a simple text email. If the email to be sent has to be configured
 * in a way which is not possible whith the parameters provided (such as html email, or email with attachement, ..),
 * please use the {@link #sendCustomEmail(org.apache.commons.mail.Email)} method and refer the API
 * {@see http://commons.apache.org/email/}.
 *
 * @param to      A set of destination email address of the email. Must contain at least one address.
 * @param object  The subject of the email.
 * @param message The msg of the email.
 * @return true if the email has been sent successfully, false otherwise.
 */
public static boolean sendEmail(ArrayList<String> to, String object, String message) {
    Email email = new SimpleEmail();
    try {
        email.setSubject(object);
        email.setMsg(message);
        if (to != null)
            for (String _to : to)
                email.addTo(_to);
        sendCustomEmail(email);
        return true;
    }
    catch (EmailException e) {
        logger.warn("Please, make sure that the SMTP server configuration is correct in the file: " + SMTP_FILE);
        logger.error(e.getMessage(), e);
        return false;
    }
}
 
Example #5
Source File: MailUtil.java    From shop with GNU General Public License v3.0 6 votes vote down vote up
/**
 * 发送邮件给指定人,需要主题和内容
 * @param user
 * @param title
 * @param content
 */
public static void sendMail(String user, String title, String content) {
    SimpleEmail email = new SimpleEmail();
    email.setCharset("UTF8");
    email.setHostName("smtp.163.com");
    email.setAuthentication(USERNAME, PASSWORD);
    try {
        email.setFrom(USERNAME);
        email.addTo(user);
        email.setSubject(title);
        email.setMsg(content);
        email.send();
    } catch (EmailException e) {
        e.printStackTrace();
    }
}
 
Example #6
Source File: EmailSender.java    From bobcat with Apache License 2.0 6 votes vote down vote up
public void sendEmail(final EmailData emailData) {
  try {
    Email email = new SimpleEmail();
    email.setHostName(smtpServer);
    email.setSmtpPort(smtpPort);
    email.setAuthenticator(new DefaultAuthenticator(username, password));
    email.setSSLOnConnect(secure);
    email.setFrom(emailData.getAddressFrom());
    email.setSubject(emailData.getSubject());
    email.setMsg(emailData.getMessageContent());
    email.addTo(emailData.getAddressTo());
    email.send();
  } catch (org.apache.commons.mail.EmailException e) {
    throw new EmailException(e);
  }
}
 
Example #7
Source File: SendEmail.java    From sAINT with BSD 3-Clause "New" or "Revised" License 6 votes vote down vote up
public void sendSimpleEmail(String email_to, String subject, String msg) {
    SimpleEmail email = new SimpleEmail();
    try {
        email.setDebug(debug);
        email.setHostName(smtp);
        email.addTo(email_to);
        email.setFrom(email_from);
        email.setAuthentication(email_from, email_password);
        email.setSubject(subject);
        email.setMsg(msg);
        email.setSSL(ssl);
        email.setTLS(tls);
        email.send();
    } catch (EmailException e) {
        System.out.println(e.getMessage());
    }
}
 
Example #8
Source File: NexusTaskNotificationEmailSender.java    From nexus-public with Eclipse Public License 1.0 5 votes vote down vote up
private void sendEmail(final String subject, final String address, final String body) {
  try {
    Email mail = new SimpleEmail();
    mail.setSubject(subject);
    mail.addTo(address);
    mail.setMsg(body);
    emailManager.get().send(mail);
  }
  catch (Exception e) {
    log.warn("Failed to send email", e);
  }
}
 
Example #9
Source File: MailActivityBehavior.java    From camunda-bpm-platform with Apache License 2.0 5 votes vote down vote up
protected SimpleEmail createTextOnlyEmail(String text) {
  SimpleEmail email = new SimpleEmail();
  try {
    email.setMsg(text);
    return email;
  } catch (EmailException e) {
    throw LOG.emailCreationException("text-only", e);
  }
}
 
Example #10
Source File: EmailManagerImpl.java    From nexus-public with Eclipse Public License 1.0 5 votes vote down vote up
@Override
public void sendVerification(final EmailConfiguration configuration, final String address) throws EmailException {
  checkNotNull(configuration);
  checkNotNull(address);

  Email mail = new SimpleEmail();
  mail.setSubject("Email configuration verification");
  mail.addTo(address);
  mail.setMsg("Verification successful");
  mail = apply(configuration, mail);
  mail.send();
}
 
Example #11
Source File: EmailUtils.java    From incubator-gobblin with Apache License 2.0 5 votes vote down vote up
/**
 * A general method for sending emails.
 *
 * @param state a {@link State} object containing configuration properties
 * @param subject email subject
 * @param message email message
 * @throws EmailException if there is anything wrong sending the email
 */
public static void sendEmail(State state, String subject, String message) throws EmailException {
  Email email = new SimpleEmail();
  email.setHostName(state.getProp(ConfigurationKeys.EMAIL_HOST_KEY, ConfigurationKeys.DEFAULT_EMAIL_HOST));
  if (state.contains(ConfigurationKeys.EMAIL_SMTP_PORT_KEY)) {
    email.setSmtpPort(state.getPropAsInt(ConfigurationKeys.EMAIL_SMTP_PORT_KEY));
  }
  email.setFrom(state.getProp(ConfigurationKeys.EMAIL_FROM_KEY));
  if (state.contains(ConfigurationKeys.EMAIL_USER_KEY) && state.contains(ConfigurationKeys.EMAIL_PASSWORD_KEY)) {
    email.setAuthentication(state.getProp(ConfigurationKeys.EMAIL_USER_KEY),
        PasswordManager.getInstance(state).readPassword(state.getProp(ConfigurationKeys.EMAIL_PASSWORD_KEY)));
  }
  Iterable<String> tos =
      Splitter.on(',').trimResults().omitEmptyStrings().split(state.getProp(ConfigurationKeys.EMAIL_TOS_KEY));
  for (String to : tos) {
    email.addTo(to);
  }

  String hostName;
  try {
    hostName = InetAddress.getLocalHost().getHostName();
  } catch (UnknownHostException uhe) {
    LOGGER.error("Failed to get the host name", uhe);
    hostName = "unknown";
  }

  email.setSubject(subject);
  String fromHostLine = String.format("This email was sent from host: %s%n%n", hostName);
  email.setMsg(fromHostLine + message);
  email.send();
}
 
Example #12
Source File: MailTest.java    From restcommander with Apache License 2.0 5 votes vote down vote up
@Test(expected = MailException.class)
public void buildMessageWithoutFrom() throws EmailException {
	new PlayBuilder().build();

	Email email = new SimpleEmail();
	email.addTo("[email protected]");
	email.setSubject("subject");
	Mail.buildMessage(new SimpleEmail());
}
 
Example #13
Source File: MailTest.java    From restcommander with Apache License 2.0 5 votes vote down vote up
@Test(expected = MailException.class)
public void buildMessageWithoutRecipient() throws EmailException {
	new PlayBuilder().build();

	Email email = new SimpleEmail();
	email.setFrom("[email protected]");
	email.setSubject("subject");
	Mail.buildMessage(email);
}
 
Example #14
Source File: MailTest.java    From restcommander with Apache License 2.0 5 votes vote down vote up
@Test(expected = MailException.class)
public void buildMessageWithoutSubject() throws EmailException {
	new PlayBuilder().build();

	Email email = new SimpleEmail();
	email.setFrom("[email protected]");
	email.addTo("[email protected]");
	Mail.buildMessage(email);
}
 
Example #15
Source File: EmailVirtualSensor.java    From gsn with GNU General Public License v3.0 5 votes vote down vote up
public boolean initialize ( ) {
	TreeMap < String , String > params = getVirtualSensorConfiguration( ).getMainClassInitialParams( );

	if(params.get(INITPARAM_SUBJECT) != null) subject = params.get(INITPARAM_SUBJECT);
	if(params.get(INITPARAM_RECEIVER) != null) receiverEmail = params.get(INITPARAM_RECEIVER);
	if(params.get(INITPARAM_SENDER) != null) senderEmail = params.get(INITPARAM_SENDER);
	else {
		logger.error( "The parameter *" + INITPARAM_SENDER + "* is missing from the virtual sensor processing class's initialization." );
		logger.error( "Loading the virtual sensor failed" );
		return false;
	}
	if(params.get(INITPARAM_SERVER) != null) mailServer = params.get(INITPARAM_SERVER);
	else {
		logger.error( "The parameter *" + INITPARAM_SERVER + "* is missing from the virtual sensor processing class's initialization." );
		logger.error( "Loading the virtual sensor failed" );
		return false;
	}
	
	try {
		email = new SimpleEmail();
		email.setHostName(mailServer);
		email.setFrom(senderEmail);
		email.setSubject( subject );
	} catch(Exception e) {
		logger.error( "Email initialization failed", e );
		return false;
	}
	return true;
}
 
Example #16
Source File: GenerateAttachment.java    From nifi with Apache License 2.0 5 votes vote down vote up
public MimeMessage SimpleEmailMimeMessage() {
    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();
    }

    return email.getMimeMessage();
}
 
Example #17
Source File: Main.java    From openseedbox with GNU General Public License v3.0 5 votes vote down vote up
public static void testEmail() {
	try {
		SimpleEmail se = new SimpleEmail();
		se.setFrom("[email protected]");
		se.addTo("[email protected]");
		se.setSubject("Test email from myseedbox");
		se.setMsg("Testy Testy test");
		Mail.send(se);
	} catch (EmailException ex) {
		resultError(ex.toString());
	}
	result("Yay!");
}
 
Example #18
Source File: EmailUtil.java    From SpringMVC-Project with MIT License 5 votes vote down vote up
/**
 * 发送文本邮件
 */
public static void sendTextEmail(Authenticator authenticator, String hostName, Tuple2<String, String> fromInfo, List<Tuple2<String, String>> toList, List<Tuple2<String, String>> ccList, String subject, String textContent) throws EmailException {
    SimpleEmail simpleEmail = buildSimpleEmail(authenticator, hostName, fromInfo, toList, ccList, subject);
    simpleEmail.setMsg(textContent);

    simpleEmail.send();
}
 
Example #19
Source File: MailActivityBehavior.java    From flowable-engine with Apache License 2.0 5 votes vote down vote up
protected SimpleEmail createTextOnlyEmail(String text) {
    SimpleEmail email = new SimpleEmail();
    try {
        email.setMsg(text);
        return email;
    } catch (EmailException e) {
        throw new ActivitiException("Could not create text-only email", e);
    }
}
 
Example #20
Source File: MailActivityBehavior.java    From flowable-engine with Apache License 2.0 5 votes vote down vote up
protected SimpleEmail createTextOnlyEmail(String text) {
    SimpleEmail email = new SimpleEmail();
    try {
        email.setMsg(text);
        return email;
    } catch (EmailException e) {
        throw new FlowableException("Could not create text-only email", e);
    }
}
 
Example #21
Source File: MailActivityBehavior.java    From flowable-engine with Apache License 2.0 5 votes vote down vote up
protected SimpleEmail createTextOnlyEmail(String text) {
    SimpleEmail email = new SimpleEmail();
    try {
        email.setMsg(text);
        return email;
    } catch (EmailException e) {
        throw new FlowableException("Could not create text-only email", e);
    }
}
 
Example #22
Source File: MailOtpAuthn.java    From MaxKey with Apache License 2.0 5 votes vote down vote up
@Override
public boolean produce(UserInfo userInfo) {
    try {
        String token = this.genToken(userInfo);
        Email email = new SimpleEmail();
        email.setHostName(emailConfig.getSmtpHost());
        email.setSmtpPort(emailConfig.getPort());
        email.setSSLOnConnect(emailConfig.isSsl());
        email.setAuthenticator(
                new DefaultAuthenticator(emailConfig.getUsername(), emailConfig.getPassword()));
        
        email.setFrom(emailConfig.getSender());
        email.setSubject(subject);
        email.setMsg(
                MessageFormat.format(
                        messageTemplate,userInfo.getUsername(),token,(interval / 60)));
        
        email.addTo(userInfo.getEmail());
        email.send();
        _logger.debug(
                "token " + token + " send to user " + userInfo.getUsername() 
                + ", email " + userInfo.getEmail());
        //成功返回
        this.optTokenStore.store(
                userInfo, 
                token, 
                userInfo.getMobile(), 
                OptTypes.EMAIL);
        return true;
    } catch (Exception e) {
        e.printStackTrace();
    }
    return false;
}
 
Example #23
Source File: InsecureSmtpSsl.java    From Android_Code_Arbiter with GNU Lesser General Public License v3.0 5 votes vote down vote up
public static void main(String[] args) throws Exception {
    Email email = new SimpleEmail();
    email.setHostName("smtp.googlemail.com");
    email.setSSLOnConnect(false); //OK

    Email email2 = new SimpleEmail();
    email2.setHostName("smtp2.googlemail.com");        
    email2.setSSLOnConnect(true); //BAD
    //email2.setSmtpPort(465);
    //email2.setAuthenticator(new DefaultAuthenticator("username", "password"));
    //email2.setFrom("[email protected]");
    //email2.setSubject("TestMail");
    //email2.setMsg("This is a test mail ... :-)");
    //email2.addTo("[email protected]");
    //email2.send();

    MultiPartEmail emailMulti = new MultiPartEmail();
    emailMulti.setHostName("mail.myserver.com");
    emailMulti.setSSLOnConnect(true); //BAD

    HtmlEmail htmlEmail = new HtmlEmail();
    htmlEmail.setHostName("mail.myserver.com");
    htmlEmail.setSSLOnConnect(true); //BAD

    ImageHtmlEmail imageEmail = new ImageHtmlEmail();
    imageEmail.setHostName("mail.myserver.com");
    imageEmail.setSSLOnConnect(true);
    imageEmail.setSSLCheckServerIdentity(true); //OK
    
    ImageHtmlEmail imageEmail2 = new ImageHtmlEmail();
    imageEmail2.setHostName("mail2.myserver.com");
    imageEmail2.setSSLCheckServerIdentity(true); //OK - reversed order
    imageEmail2.setSSLOnConnect(true);

    ImageHtmlEmail imageEmail3 = new ImageHtmlEmail();
    imageEmail3.setHostName("mail3.myserver.com");
    imageEmail3.setSSLOnConnect(true); //BAD
}
 
Example #24
Source File: MailActivityBehavior.java    From activiti6-boot2 with Apache License 2.0 5 votes vote down vote up
protected SimpleEmail createTextOnlyEmail(String text) {
  SimpleEmail email = new SimpleEmail();
  try {
    email.setMsg(text);
    return email;
  } catch (EmailException e) {
    throw new ActivitiException("Could not create text-only email", e);
  }
}
 
Example #25
Source File: MailActivityBehavior.java    From activiti6-boot2 with Apache License 2.0 5 votes vote down vote up
protected SimpleEmail createTextOnlyEmail(String text) {
  SimpleEmail email = new SimpleEmail();
  try {
    email.setMsg(text);
    return email;
  } catch (EmailException e) {
    throw new ActivitiException("Could not create text-only email", e);
  }
}
 
Example #26
Source File: SendEmaiWithGmail.java    From spring-boot with Apache License 2.0 4 votes vote down vote up
/**
 * 用 commons 发送简单邮件 用 [email protected] (登录密码为 pass)发送邮件
 * 
 * @author jianghui
 * @param userName
 *            gmail 用户名 test
 * @param password
 *            gmail 密码 pass
 * @param subject
 *            邮件标题
 * @param simpleEmailBody
 *            邮件内容
 * @param from
 *            邮件显示的发信人.实际的发信地址为 gamil 邮箱地址
 * @param to
 *            收件人邮件地址
 * @param cc
 *            抄送人邮件地址,多个地址用分号";"隔开,如果没有,则为空字符串""
 * @param bcc
 *            密送人邮件地址,多个地址用分号";"隔开,如果没有,则为空字符串""
 * @throws EmailException
 */
public void sendsimpleEmail(String userName, String password,
		String subject, String simpleEmailBody, String from, String to,
		String cc, String bcc) throws EmailException {

	// 创建SimpleEmail对象
	SimpleEmail email = new SimpleEmail();

	// 显示调试信息用于IED中输出
	email.setDebug(true);

	// 设置发送电子邮件的邮件服务器
	email.setHostName("smtp.gmail.com");

	// 邮件服务器是否使用ssl加密方式gmail就是,163就不是)
	email.setSSL(Boolean.TRUE);

	// 设置smtp端口号(需要查看邮件服务器的说明ssl加密之后端口号是不一样的)
	email.setSmtpPort(465);

	// 设置发送人的账号/密码
	email.setAuthentication(userName, password);

	// 显示的发信人地址,实际地址为gmail的地址
	email.setFrom(from);
	// 设置发件人的地址/称呼
	// email.setFrom("[email protected]", "发送人");

	// 收信人地址
	email.addTo(to);
	// 设置收件人的账号/称呼)
	// email.addTo("[email protected]", "收件人");

	// 多个抄送地址
	StrTokenizer stokenCC = new StrTokenizer(cc.trim(), ";");
	// 开始逐个抄送地址
	for (int i = 0; i < stokenCC.getTokenArray().length; i++) {
		email.addCc((String) stokenCC.getTokenArray()[i]);
	}

	// 多个密送送地址
	StrTokenizer stokenBCC = new StrTokenizer(bcc.trim(), ";");
	// 开始逐个抄送地址
	for (int i = 0; i < stokenBCC.getTokenArray().length; i++) {
		email.addBcc((String) stokenBCC.getTokenArray()[i]);
	}

	// Set the charset of the message.
	email.setCharset("UTF-8");

	email.setSentDate(new Date());

	// 设置标题,但是不能设置编码,commons 邮件的缺陷
	email.setSubject(subject);

	// 设置邮件正文
	email.setMsg(simpleEmailBody);

	// 就是send发送
	email.send();

	// 这个是我自己写的。
	System.out.println("The SimpleEmail send sucessful!");

}
 
Example #27
Source File: MailSenderDefaultImpl.java    From minsx-framework with Apache License 2.0 4 votes vote down vote up
public MailSenderDefaultImpl(SimpleEmail simpleEmail) {
    this.simpleEmail = simpleEmail;
}
 
Example #28
Source File: TestListenSMTP.java    From localization_nifi with Apache License 2.0 4 votes vote down vote up
@Test
public void validateTooLargeMessage() throws Exception, EmailException {
    int port = NetworkUtils.availablePort();

    TestRunner runner = TestRunners.newTestRunner(ListenSMTP.class);
    runner.setProperty(ListenSMTP.SMTP_PORT, String.valueOf(port));
    runner.setProperty(ListenSMTP.SMTP_MAXIMUM_CONNECTIONS, "3");
    runner.setProperty(ListenSMTP.SMTP_TIMEOUT, "10 seconds");
    runner.setProperty(ListenSMTP.SMTP_MAXIMUM_MSG_SIZE, "10 B");

    runner.assertValid();

    int messageCount = 1;
    CountDownLatch latch = new CountDownLatch(messageCount);

    runner.run(messageCount, false);

    this.executor.schedule(new Runnable() {
        @Override
        public void run() {
            for (int i = 0; i < messageCount; i++) {
                try {
                    Email email = new SimpleEmail();
                    email.setHostName("localhost");
                    email.setSmtpPort(port);
                    email.setFrom("[email protected]");
                    email.setSubject("This is a test");
                    email.setMsg("MSG-" + i);
                    email.addTo("[email protected]");
                    email.send();
                } catch (Exception e) {
                    e.printStackTrace();
                    throw new RuntimeException(e);
                } finally {
                    latch.countDown();
                }
            }
        }
    }, 1000, TimeUnit.MILLISECONDS);

    boolean complete = latch.await(5000, TimeUnit.MILLISECONDS);
    runner.shutdown();
    assertTrue(complete);
    runner.assertAllFlowFilesTransferred("success", 0);
}
 
Example #29
Source File: TestListenSMTP.java    From localization_nifi with Apache License 2.0 4 votes vote down vote up
@Test
public void validateSuccessfulInteractionWithTls() throws Exception, EmailException {
    System.setProperty("mail.smtp.ssl.trust", "*");
    System.setProperty("javax.net.ssl.keyStore", "src/test/resources/localhost-ks.jks");
    System.setProperty("javax.net.ssl.keyStorePassword", "localtest");
    int port = NetworkUtils.availablePort();

    TestRunner runner = TestRunners.newTestRunner(ListenSMTP.class);
    runner.setProperty(ListenSMTP.SMTP_PORT, String.valueOf(port));
    runner.setProperty(ListenSMTP.SMTP_MAXIMUM_CONNECTIONS, "3");
    runner.setProperty(ListenSMTP.SMTP_TIMEOUT, "10 seconds");

    // Setup the SSL Context
    SSLContextService sslContextService = new StandardSSLContextService();
    runner.addControllerService("ssl-context", sslContextService);
    runner.setProperty(sslContextService, StandardSSLContextService.TRUSTSTORE, "src/test/resources/localhost-ts.jks");
    runner.setProperty(sslContextService, StandardSSLContextService.TRUSTSTORE_PASSWORD, "localtest");
    runner.setProperty(sslContextService, StandardSSLContextService.TRUSTSTORE_TYPE, "JKS");
    runner.setProperty(sslContextService, StandardSSLContextService.KEYSTORE, "src/test/resources/localhost-ks.jks");
    runner.setProperty(sslContextService, StandardSSLContextService.KEYSTORE_PASSWORD, "localtest");
    runner.setProperty(sslContextService, StandardSSLContextService.KEYSTORE_TYPE, "JKS");
    runner.enableControllerService(sslContextService);

    // and add the SSL context to the runner
    runner.setProperty(ListenSMTP.SSL_CONTEXT_SERVICE, "ssl-context");
    runner.setProperty(ListenSMTP.CLIENT_AUTH, SSLContextService.ClientAuth.NONE.name());
    runner.assertValid();

    int messageCount = 5;
    CountDownLatch latch = new CountDownLatch(messageCount);
    runner.run(messageCount, false);

    this.executor.schedule(new Runnable() {
        @Override
        public void run() {
            for (int i = 0; i < messageCount; i++) {
                try {
                    Email email = new SimpleEmail();
                    email.setHostName("localhost");
                    email.setSmtpPort(port);
                    email.setFrom("[email protected]");
                    email.setSubject("This is a test");
                    email.setMsg("MSG-" + i);
                    email.addTo("[email protected]");

                    // Enable STARTTLS but ignore the cert
                    email.setStartTLSEnabled(true);
                    email.setStartTLSRequired(true);
                    email.setSSLCheckServerIdentity(false);
                    email.send();
                } catch (Exception e) {
                    e.printStackTrace();
                    throw new RuntimeException(e);
                } finally {
                    latch.countDown();
                }
            }
        }
    }, 1500, TimeUnit.MILLISECONDS);

    boolean complete = latch.await(5000, TimeUnit.MILLISECONDS);
    runner.shutdown();
    assertTrue(complete);
    runner.assertAllFlowFilesTransferred("success", messageCount);
}
 
Example #30
Source File: TestListenSMTP.java    From localization_nifi with Apache License 2.0 4 votes vote down vote up
@Test
public void validateSuccessfulInteraction() throws Exception, EmailException {
    int port = NetworkUtils.availablePort();

    TestRunner runner = TestRunners.newTestRunner(ListenSMTP.class);
    runner.setProperty(ListenSMTP.SMTP_PORT, String.valueOf(port));
    runner.setProperty(ListenSMTP.SMTP_MAXIMUM_CONNECTIONS, "3");
    runner.setProperty(ListenSMTP.SMTP_TIMEOUT, "10 seconds");

    runner.assertValid();
    runner.run(5, false);
    final int numMessages = 5;
    CountDownLatch latch = new CountDownLatch(numMessages);

    this.executor.schedule(new Runnable() {
        @Override
        public void run() {
            for (int i = 0; i < numMessages; i++) {
                try {
                    Email email = new SimpleEmail();
                    email.setHostName("localhost");
                    email.setSmtpPort(port);
                    email.setFrom("[email protected]");
                    email.setSubject("This is a test");
                    email.setMsg("MSG-" + i);
                    email.addTo("[email protected]");
                    email.send();
                } catch (Exception e) {
                    e.printStackTrace();
                    throw new RuntimeException(e);
                } finally {
                    latch.countDown();
                }
            }
        }
    }, 1500, TimeUnit.MILLISECONDS);

    boolean complete = latch.await(5000, TimeUnit.MILLISECONDS);
    runner.shutdown();
    assertTrue(complete);
    runner.assertAllFlowFilesTransferred(ListenSMTP.REL_SUCCESS, numMessages);
}