工具类-发送邮件(通过JavaMail发送)

  前段时间在工作中用到了邮件发送监控的报警信息,今天在这个记录一下JavaMail的邮件工具类。

  下边为用到的JavaMail的jar包的pom依赖。这里用的是JavaMail的1.4.6的版本。

<dependency>
  <groupId>javax.mail</groupId>
  <artifactId>mail</artifactId>
  <version>1.4.6</version>
</dependency>

  这里是工具类中的用到的邮件的一些参数对象的实体类。  

package com.juihai.entity;

import java.util.Arrays;

public class EmailTO {
    private String title;//邮件主题
    private String content;//邮件内容
    private String sender;//发件人账号
    private String password;//发件人密码
    private String host;//发件邮箱服务器
    private String[] toAdress;//收件人地址
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    public String getSender() {
        return sender;
    }
    public void setSender(String sender) {
        this.sender = sender;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getHost() {
        return host;
    }
    public void setHost(String host) {
        this.host = host;
    }
    public String[] getToAdress() {
        return toAdress;
    }
    public void setToAdress(String[] toAdress) {
        this.toAdress = toAdress;
    }
    @Override
    public String toString() {
        return "EmailTO [title=" + title + ", content=" + content + ", sender="
                + sender + ", password=" + password + ", host=" + host
                + ", toAdress=" + Arrays.toString(toAdress) + "]";
    }

}

  这里是就是发送Email的工具类。具体说明件代码中的注释。

import java.io.UnsupportedEncodingException;
import java.security.GeneralSecurityException;
import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import org.apache.log4j.Logger;

import com.juihai.entity.EmailTO;

public class SendEmailUtils {
    /** 日志输出 */
    private static Logger log = Logger.getLogger(SendEmailUtils.class);

    public static boolean send(EmailTO to) throws GeneralSecurityException{

        final String user = to.getSender();
        final String password = to.getPassword();
        log.info("SendEmailUtils >>>> Start Send Mail");
        Properties properties = System.getProperties();// 获取系统属性
        properties.setProperty("mail.smtp.host", to.getHost());// 设置邮件服务器 "smtp.163.com",这是发件人的邮箱服务器
        properties.put("mail.smtp.auth", "true");
        String senderNick = null;
          //部分邮箱服务器需要开启SSL验证才可以发送邮件,需要的话,开启注释即可 
        /*MailSSLSocketFactory sf = new MailSSLSocketFactory();// SSL验证 begin
        sf.setTrustAllHosts(true);
        properties.put("mail.smtp.ssl.enable", "true");
        properties.put("mail.smtp.ssl.socketFactory", sf);// SSL验证 end*/

        Session session = Session.getDefaultInstance(properties,
                new Authenticator() {
                    public PasswordAuthentication getPasswordAuthentication() {
                        return new PasswordAuthentication(user, password); // 发件人邮件用户名、密码
                    }
                });
        try {
            MimeMessage message = new MimeMessage(session);// 创建默认的 MimeMessage对象
            senderNick = javax.mail.internet.MimeUtility.encodeText("Juihai");//设置发件人昵称
            message.setFrom(new InternetAddress(senderNick+"<"+user+">"));

            //message.addRecipient(Message.RecipientType.TO,new InternetAddress());//创建单个收件人
            String[] tos = to.getToAdress();//创建多个收件人
            if (tos != null && tos.length != 0) {
                InternetAddress[] toAddress = new InternetAddress[tos.length];
                for (int i = 0; i < tos.length; i++) {
                    toAddress[i] = new InternetAddress(tos[i]);
                }
                message.setRecipients(Message.RecipientType.TO, toAddress);
            }
            message.setSubject(to.getTitle());//设置邮件主题
            //message.setText(content);//发送纯文本内容
            message.setContent(to.getContent(), "text/html;charset=utf-8");//发送html邮件内容

            Transport.send(message);//发送Email
            log.info(" SendEmailUtils邮件发送成功");
            return true;
        }catch (MessagingException mex) {
            mex.printStackTrace();
            log.info(" >>>>SendEmailUtils邮件发送失败"+mex);
        } catch (UnsupportedEncodingException e) {
            log.info(" >>>>SendEmailUtils邮件发送失败-设置发件人昵称error"+e);
            e.printStackTrace();
        }
        return false;
    }
}

原文地址:https://www.cnblogs.com/juihai/p/8970181.html

时间: 2024-11-09 10:47:11

工具类-发送邮件(通过JavaMail发送)的相关文章

httpclient工具类,post请求发送json字符串参数,中文乱码处理

在使用httpclient发送post请求的时候,接收端中文乱码问题解决. 正文: 我们都知道,一般情况下使用post请求是不会出现中文乱码的.可是在使用httpclient发送post请求报文含中文的时候在发送端数据正常但是到了服务器端就中文乱码了. 解决办法: 发送端进行设置编码如下: 工具类: 1 package com.Util; 2 3 import com.google.common.base.Charsets; 4 import org.apache.http.HttpEntity

RestTemplate工具类根据服务名发送请求

要使用RestTemplate 根据服务名发送请求的话需要 使用  @LoadBalanced  这个注解,用了这个注解的RestTemplate就不用使用  ip 来请求了,首先要创建一个配置类 import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.context.annotation.Bean; import org.springframework.conte

JAVA 邮件发送工具类

1.封装邮件接收地址MODEL和邮件信息MODEL package com.sicdt.jnzxgzc.common.mail.model; import java.io.Serializable; /** * * <br>类 名: MailAddress * <br>描 述: InternetAddress的封装类 * <br>作 者: shizhenwei * <br>创 建: 2017年8月4日 * <br>版 本: v1.0.0 * &l

邮件发送工具类

import java.io.UnsupportedEncodingException; import java.util.Date; import java.util.Properties; import javax.mail.Address; import javax.mail.Message; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress;

java工具类-邮件发送

mail-1.4.jar package com.huawei.it.citools.mail; import java.util.Date;import java.util.List;import java.util.Properties; import javax.mail.Address;import javax.mail.BodyPart;import javax.mail.Message;import javax.mail.MessagingException;import javax

使用javax.mail包下的类实现发送邮件工具类

IDEA 依赖: <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency> 模板实体类: package springbootdemo.demo.entity; /** * @author * @date 2019/8/19 21:58 */ pu

发送邮箱验证信息的工具类

package cn.itcast.travel.util; import javax.mail.*;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import java.util.Properties; /** * 发邮件工具类 */public final class MailUtils { private static final String USER = "[email

发送请求工具类

采用HttpClient与远程服务器通信,所以定义一个工具类对HttpClient进行封装getRequest():发送get请求postRequest():发送post请求 FutureTask(Callable<V> callable)  //创建一个 FutureTask,一旦运行就执行给定的 Callable. FutureTask(Runnable runnable, V result)   //创建一个 FutureTask,一旦运行就执行给定的 Runnable,并安排成功完成时

利用线程创建发送手机验证码的工具类

1.生成验证码类 package com.util; import java.util.Timer; import java.util.TimerTask; /** * @description 手机发送验证码工具类 */ public class MessageCode extends TimerTask{ private Timer timer; /** * @description 短信验证码的内容 */ private String messageCode; /** * @descrip