JavaMailSender發送163郵件



import com.sun.istack.ByteArrayDataSource;
import javax.activation.DataSource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeUtility;
import java.util.Properties;


@Component
public class MailMananger {



    private static final String host = "XXX";
    private static final String username ="[email protected]";
    private static final String password = "XXX";
    private static final String encode ="UTF-8";
    private  static final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";


    public JavaMailSenderImpl init(){
        JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
        mailSender.setHost(host);
        mailSender.setUsername(username);
        mailSender.setPassword(password);
        mailSender.setDefaultEncoding(encode);
        Properties props = new Properties();
        props.setProperty("mail.smtp.host", host);
        props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
        props.setProperty("mail.smtp.socketFactory.fallback", "false");
        props.setProperty("mail.smtp.port", "465");
        props.setProperty("mail.smtp.socketFactory.port", "465");
        props.put("mail.smtp.auth", "true");
        mailSender.setJavaMailProperties(props);
        return  mailSender;
    }

    /**
     * 發送文本郵件
     * @param toUser 收件者
     * @param subject 主題
     * @param content 主體
     */
    public void sendTestMail(String toUser, String subject, String content){
        JavaMailSender javaMailSender = init();
        SimpleMailMessage message = new SimpleMailMessage();
        message.setFrom(username);//發送者
        message.setTo(toUser);//接受者
        message.setSubject(subject);//主題
        message.setText(content);//主體
        //message.copyTo(copyTo);文本郵件抄送
        javaMailSender.send(message);
    }

    /**
     * 發送富文本郵件
     * @param toUser 收件者
     * @param subject 主題
     * @param content 主體
     */
    public void sendHtmlMail(String toUser,String subject,String content){
        JavaMailSender javaMailSender = init();
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        try{
            //true  標識需要創建一個multipart message
            MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
            helper.setFrom(username);
            helper.setTo(toUser);
            helper.setSubject(subject);
            helper.setText(content,true);
        }catch (MessagingException e){
            System.err.println(e.toString());
        }
    }

    /**
     * 附件郵件
     * @param toUser 收件者
     * @param subject 主題
     * @param content 主體
     * @param files 附件
     */
    public Object sendAttachmentsMail(String[] toUser, String subject, String content, MultipartFile[] files, String[] emailCc){
        System.setProperty("mail.mime.splitlongparameters","false");//解決利用javaManager發送郵件,文件名稱過長,自動截取的問題
        JavaMailSender javaMailSender = init();
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        try{
            //true  標識需要創建一個multipart message
            MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true,"utf-8");
            helper.setFrom(username);
            helper.setTo(toUser);
            helper.setSubject(subject);
            if(null != emailCc && emailCc.length !=  0){
                helper.setCc(emailCc);
            }
            helper.setText(content,true);
            for(MultipartFile file :files){helper.addAttachment(MimeUtility.encodeWord(file.getOriginalFilename(),"utf-8","B"),file);
            }
            javaMailSender.send(mimeMessage);
            return "success";
        }catch (Exception e){
            System.err.println(e.getMessage());
            return e;
        }

    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章