发送邮件

private JavaMailSender mailSender;//spring配置中定义
public void setMailSender(JavaMailSender mailSender) {
           this.mailSender = mailSender;
       }


private void createMailConfig(){
               sitemail = restTemplate.getForObject(siteMailServiceUrl + "get", Sitemail.class);
               if(sitemail!=null){
                   JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
                   javaMailSender.setHost(sitemail.getStmpserver());
                   javaMailSender.setUsername(sitemail.getMailaddress());
                   javaMailSender.setPassword(sitemail.getPassword());
                   javaMailSender.setDefaultEncoding(DefaultEncoding);

                   //设置Session中的信息,保证邮件认证的一致性
                   Properties props = new Properties();
                   props.put("mail.smtp.host", sitemail.getStmpserver());
                   props.put("mail.smtp.auth", "true");
                   props.put("mail.transport.protocol", "smtp");
                   //如果是qq.com启用ssl
                   if (sitemail.getStmpserver().toLowerCase().endsWith(".qq.com")) {
                       props.put("mail.smtp.starttls.enable", "true");
                   }

                   Authenticator authentic = new MyAuthenticator(sitemail.getMailaddress(), sitemail.getPassword());
                   Session session = Session.getInstance(props, authentic);
                   javaMailSender.setSession(session);

                   this.setMailSender(javaMailSender);

               }else{
                   throw new NullPointerException("没有检索到stmp发件地址");
               }
           }



@RequestMapping("/sendMailMessagebymodel")
       public boolean sendMailMessage(
               @RequestBody Map<String, Object> requestParams){

           JSONObject mailContentJson= (JSONObject)requestParams.get("mailContent");
           MailContentVO mailContent = JSON.toJavaObject(mailContentJson,MailContentVO.class);

           Map<String,String> model = (Map)requestParams.get("model");

           createMailConfig();
           String  mailcontent = null;
           String mailSubject = null;


           mailcontent = MessageTemplateUtil.merge(mailContent.getTemplate(), model);
           mailSubject = MessageTemplateUtil.merge(mailContent.getSubject(), model);

           MimeMessage mimeMessage = mailSender.createMimeMessage();

               //发送超文本
           try {

                Address fromAddress= getFrom(sitemail.getSendname(),sitemail.getMailaddress());
                mimeMessage.setFrom(fromAddress);
                MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage);
                messageHelper.setTo(mailContent.getTo());
                messageHelper.setSubject(mailSubject);
                messageHelper.setText(mailcontent,true);

               } catch (MessagingException e) {
                   logger.error("sendMailMessage---",e);
               }
               final MimeMessage mimeMessagenew= mimeMessage;
               new Thread(new Runnable() {
                   @Override
                   public void run() {
                       try {
                           logger.error("------mailSendstart-----------");
                           mailSender.send(mimeMessagenew);
                       } catch (Exception e) {
                           logger.error("------mailSendFail-----------", e);
                       }
                   }
               }).start();
               return true;
       }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值