@Test public void should_send_mail_when_parameters_are_correct() { final EmailBuilder email = context.mock(EmailBuilder.class); context.checking( new Expectations() { { one(email).from("*****@*****.**"); will(returnValue(email)); one(email).to("*****@*****.**"); will(returnValue(email)); one(email).withSubject("subject"); will(returnValue(email)); one(email).withBody("body"); will(returnValue(email)); one(email).withCharset("UTF-8"); will(returnValue(email)); one(email).send(); } }); email .from("*****@*****.**") .to("*****@*****.**") .withSubject("subject") .withBody("body") .withCharset("UTF-8") .send(); }
public void send(EmailBuilder[] emails, SmtpConfig smtp) throws AddressException, MessagingException, IOException { Properties props = System.getProperties(); if (smtp.getHost() != null) { props.put("mail.smtp.host", smtp.getHost()); } if (smtp.isAuth()) { props.put("mail.smtp.auth", "true"); props.put("mail.smtps.auth", "true"); } if (smtp.isStarttls()) { props.put("mail.smtp.starttls.enable", "true"); } // Get a Session object Session session = Session.getInstance(props, null); if (debug) { session.setDebug(true); } SMTPTransport transport = null; try { for (EmailBuilder email : emails) { // construct the message Message msg = email.getMessage(email, session); msg.setHeader("X-Mailer", mailer); msg.setSentDate(new Date()); if (transport == null) { transport = (SMTPTransport) session.getTransport(smtp.isSsl() ? "smtps" : "smtp"); if (smtp.isAuth()) { transport.connect(smtp.getHost(), smtp.getUser(), smtp.getPassword()); } else { transport.connect(); } } try { transport.sendMessage(msg, msg.getAllRecipients()); } finally { if (verbose) { System.out.println("SmtpMailer: Response = " + transport.getLastServerResponse()); } } if (verbose) { System.out.println("SmtpMailer: E-Mail successfully sent."); } } } finally { if (transport != null) transport.close(); } }
public void sendEmail(EmailBuilder builder) { // 收件人电子邮箱 String to = builder.getReceiver(); // 发件人电子邮箱 String from = builder.getSender(); // 获取系统属性 Properties properties = System.getProperties(); // 设置邮件服务器 properties.setProperty("mail.smtp.host", builder.getHost()); properties.put("mail.smtp.port", builder.getPort()); properties.put("mail.smtp.auth", builder.authNeeded()); // 获取默认session对象 Session session = Session.getDefaultInstance( properties, new Authenticator() { public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(from, builder.getToken()); // 发件人邮件用户名、密码 } }); try { // 创建默认的 MimeMessage 对象 MimeMessage message = new MimeMessage(session); // Set From: 头部头字段 message.setFrom(new InternetAddress(from)); message.addRecipients( Message.RecipientType.TO, new InternetAddress[] {new InternetAddress(to), new InternetAddress(to)}); // Set Subject: 头部头字段 message.setSubject(builder.getTitle()); // 设置消息体 message.setText(builder.getContent()); // 发送消息 Transport.send(message); System.out.println("Sent message successfully....from Java Mail"); } catch (MessagingException mex) { mex.printStackTrace(); } }