美文网首页
Java发送邮件jdk11- java.lang.NoClass

Java发送邮件jdk11- java.lang.NoClass

作者: coderYJ | 来源:发表于2018-11-06 17:55 被阅读45次

    在jdk8以上需要包含2个jar包

    package com.xmg.store.utils;
    
    import java.util.Properties;
    
    import javax.mail.Authenticator;
    import javax.mail.Message;
    import javax.mail.MessagingException;
    import javax.mail.PasswordAuthentication;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.AddressException;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
    import javax.mail.internet.MimeMessage.RecipientType;
    
    public class MailUtils {
        public static void sendMail(String email, String emailMsg)
                throws AddressException, MessagingException {
            // 1.创建一个程序与邮件服务器会话对象 Session
            Properties props = new Properties();
            //设置发送的协议
            //props.setProperty("mail.transport.protocol", "SMTP");
    
            //设置发送邮件的服务器
            props.setProperty("mail.host", "smtp.163.com");
            props.setProperty("mail.smtp.auth", "true");// 指定验证为true
    
            // 创建验证器
            Authenticator auth = new Authenticator() {
                public PasswordAuthentication getPasswordAuthentication() {
                    //设置发送人的帐号和密码 你的密码
                    return new PasswordAuthentication("simplyou@163.com", "xxxx");
                }
            };
            Session session = Session.getInstance(props, auth);
    
            // 2.创建一个Message,它相当于是邮件内容
            Message message = new MimeMessage(session);
    
            //设置发送者
            message.setFrom(new InternetAddress("simplyou@163.com"));
    
            //设置发送方式与接收者
            message.setRecipient(RecipientType.TO, new InternetAddress(email));
    
            //设置邮件主题
            message.setSubject("这是来自遥远的东方的一封邮件");
           
            //设置邮件内容
            message.setContent(emailMsg, "text/html;charset=utf-8");
    
            // 3.创建 Transport用于将邮件发送
            Transport.send(message);
        }
        public static void main(String[] args) throws AddressException, MessagingException {
            MailUtils.sendMail("997745354@qq.com", "邮件内容");
        }
    }
    
    • 如果不添加Activation.jar会报这个错误
      java.lang.NoClassDefFoundError: javax/activation/DataSource
    • 输入发送者的邮箱和密码 权限验证一定要打开 如果不打开会报 com.sun.mail.smtp.SMTPSendFailedException: 553 authentication is required,163 smtp1,C9GowABHeFeyYeFb

    简书关注coderYJ
    微博关注coderYJ
    微信公众号关注coderYJ

    相关文章

      网友评论

          本文标题:Java发送邮件jdk11- java.lang.NoClass

          本文链接:https://www.haomeiwen.com/subject/bdauxqtx.html