java发送邮件(解决不被被当成垃圾邮件)

//登录验证

static class SmtpAuth extends javax.mail.Authenticator {  

     private String user , password ;  
 
     public void getuserinfo(String getuser, String getpassword) {  
         user = getuser;  
         password = getpassword;  
     }  
 
     protected javax.mail.PasswordAuthentication getPasswordAuthentication() {  
         return new javax.mail.PasswordAuthentication( user , password );  
     }  

  } 

//群发邮件

 public void sendMessage() throws MessagingException, IOException {

        String smtpHost = "smtp.163.com";
        String from = userAccount;//传过来的账号
        String subject = "这是一份调查问卷";
        StringBuffer messageText=new StringBuffer();//内容以html格式发送,防止被当成垃圾邮件
        messageText.append("

Hi,你好,这是一份充满诚意的调查问卷,如果有空的话请协助我们完成调查


");
        messageText.append("点我前往答题");
        
        SmtpAuth sa = new SmtpAuth();
        sa.getuserinfo(userAccount, userPassword);//传过来的账号和密码
        java.util.Properties props = new java.util.Properties();
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.host", smtpHost);

        InternetAddress fromAddress = new InternetAddress(from,"苏州教育质量监测中心");//设置发送人别称

        int i = 0;
        int sucs=0;
        int fal=0;
        String result="";
        while (i < email.size()) {//email是存放收件人邮箱地址的集合
            try {
                InternetAddress toAddresss = new InternetAddress(email.get(i));
                Session mailSession = Session.getDefaultInstance(props, sa);
                MimeMessage testMessage = new MimeMessage(mailSession);
                try {
                    testMessage.setFrom(fromAddress);
                } catch (AddressException  e) {
                    result="false";
                    response.getWriter().write(result);
                }
                testMessage.addRecipient(javax.mail.Message.RecipientType.TO, toAddresss);
                testMessage.setSentDate(new java.util.Date());
                testMessage.setSubject(subject);
                //testMessage.setText(messageText);
                testMessage.setContent(messageText.toString(), "text/html;charset=gb2312");
                Transport.send(testMessage);
                i++;
                sucs++;
            } catch (MessagingException e) {
                System.out.println("发送给"+email.get(i)+"发送失败");
                i++;
                fal++;
            }
        }
        result=sucs+"|"+fal;
        response.getWriter().write(result);

}

你可能感兴趣的:(java发送邮件(解决不被被当成垃圾邮件))