使用javamail发信过程中的一些问题及解决方法

private MimeMessage createMessage(String title, String content) {
        Properties properties = System.getProperties();
        properties.put(KEY_MAIL_HOST, VALUE_MAIL_HOST);
        properties.put(KEY_MAIL_AUTH, VALUE_MAIL_AUTH);
        SocketFactory ssf = javax.net.ssl.SSLSocketFactory.getDefault();
        properties.put("mail.smtp.ssl.enable", "true"); 
        properties.put("mail.smtp.ssl.socketFactory",ssf);
        properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

//      properties.put("mail.smtp.starttls.enable","true");
        properties.put("mail.smtp.timeout", "25000");

        // 开启debug调试
//      properties.put("mail.debug", "true");
        // 发送服务器需要身份验证
        properties.put("mail.smtp.auth", "true");
        // 设置邮件服务器主机名
        properties.put("mail.host", "smtp.qq.com");
        // 发送邮件协议名称
        properties.put("mail.transport.protocol", "smtp");
        properties.put("mail.smtp.port", "465");
        properties.put("mail.smtp.socketFactory.port", "465");

        properties.put("mail.smtp.ssl.enable", "true");
        final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
        properties.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
        
        Session session = Session.getInstance(properties, getAuthenticator());
        // Session session = Session.getInstance(properties);
        MimeMessage mimeMessage = new MimeMessage(session);
        try {
            mimeMessage.setFrom(new InternetAddress(SENDER_NAME));
            InternetAddress[] addresses = new InternetAddress[] { new InternetAddress(SENDER_NAME)};
            mimeMessage.setRecipients(Message.RecipientType.TO, addresses);
            mimeMessage.setSubject(title);
            MimeBodyPart textPart = new MimeBodyPart();
            //textPart.setContent(content, "text/html");
//          textPart.setContent(content, "text/html;charset=UTF-8");
            textPart.setContent(content, "text/html;charset=gbk");
//          textPart.setHeader("Content-Transfer-Encoding", "base64");
//          textPart.setHeader("Content-Transfer-Encoding", "quoted-printable");
            Multipart multipart = new MimeMultipart();
            multipart.addBodyPart(textPart);
//          mimeMessage.setHeader( "Content-Transfer-Encoding", "base64" );
//          mimeMessage.setHeader("Content-Transfer-Encoding", "quoted-printable");
            mimeMessage.setContent(multipart);
            mimeMessage.setSentDate(new Date());
        } catch (MessagingException e) {
            e.printStackTrace();
        }
        return mimeMessage;
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容