java利用spring發郵件

spring環境,還要引入一個jar

<!-- https://mvnrepository.com/artifact/javax.mail/com.springsource.javax.mail -->
<dependency>
	<groupId>javax.mail</groupId>
	<artifactId>com.springsource.javax.mail</artifactId>
	<version>1.4.0</version>
</dependency>
public class EmailUtil {
	
	/** 讀取配置文件,封裝的讀取配置文件 */
    private static Properties mailProperties = PropertyLoader.getPropertyByPath(Constants.CONFIG_FILE_PATH + "mail.properties");

    /** PORT  參數 25 */
    private static final Integer PORT = Integer.valueOf(mailProperties.getProperty("mail.sender.port").trim());

    /** host ,郵件服務器域名*/
    private static final String MAIL_SMTP_HOST = mailProperties.getProperty("mail.smtp.host").trim();

    /** user_name,發郵件的郵箱 */
    private static final String USER_NAME = mailProperties.getProperty("mail.sender.username").trim();

    /** passWord,密碼 */
    private static final String PASS_WORD = mailProperties.getProperty("mail.sender.password").trim();

    /** 初始化郵件發送實體 */
    private static final JavaMailSenderImpl mailSend = createMailSender();
    
    /** 初始化消息  */
    private static final MimeMessage mimeMessage = mailSend.createMimeMessage();
    
    /** 郵件助手 */
    private static MimeMessageHelper mimeMessageHelper;
    
    /** 初始化消息助手 */
    static{
    	try {
    		 mimeMessageHelper = new MimeMessageHelper(mimeMessage,true,"UTF-8");
    		 mimeMessageHelper.setFrom(USER_NAME);
     	} catch (MessagingException e) {
			e.printStackTrace();
		}
    }
    
    //初始化郵件實體
    private static JavaMailSenderImpl createMailSender(){
        JavaMailSenderImpl sender = new JavaMailSenderImpl();
        sender.setHost(MAIL_SMTP_HOST);//發送主機
        sender.setPort(PORT);
        sender.setUsername(USER_NAME);//發送郵箱
        sender.setPassword(PASS_WORD);//密碼
        sender.setDefaultEncoding("utf-8");
       
        Properties p = new Properties();
        p.setProperty("mail.smtp.timeout","25000");
        //是否需要密碼。
        p.setProperty("mail.smtp.auth","true");
        
        sender.setJavaMailProperties(p);
        return sender;
    }
    /**
     * 
     * 發送郵件
     * 
     * @param orgName
     *            郵件名稱
     * @param letter
     *            郵件內容  純文本
     * @param html
     * 			  html格式    最好和純文本其中一個爲空串,否則可能會導致郵件格式混亂
     * @param email
     *            郵箱地址
     */
    public static void sendEmail(String orgName, String letter,String html, String email) {
        if (StringUtils.isBlank(orgName) || StringUtils.isBlank(email)) {
            return;
        }
        //不允許都爲null和空串。
        if (StringUtils.isBlank(letter) && StringUtils.isBlank(html)) {
			return;
		}

        if (!validateEmail(email)) {
            return;
        }
        //進行配置
        try {	       
			mimeMessageHelper.setTo(email);
			mimeMessageHelper.setSubject(orgName);
			mimeMessageHelper.setText(letter,html);
			mailSend.send(mimeMessage);
		} catch (MessagingException e) {
			System.out.println("-------------郵件發送異常------------");
		}
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章