当前位置: 代码迷 >> Java Web开发 >> 【急求相助】用java发送邮件报530 5.7.1 Authentication required
  详细解决方案

【急求相助】用java发送邮件报530 5.7.1 Authentication required

热度:1029   发布时间:2016-04-16 22:22:56.0
【急求帮助】用java发送邮件报530 5.7.1 Authentication required
package com.xiaozhi.email;

import java.util.Properties;

import javax.mail.Message;
import javax.mail.NoSuchProviderException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

public class SendEmail2 {

        public static void main(String[] args) throws Exception, NoSuchProviderException {
                Properties props = new Properties();
                props.setProperty("mail.host", "smtp.sina.com");
                props.setProperty("mail.transport.protocol", "smtp");
//                props.setProperty("mail.auth", "true");
                Session session = Session.getInstance(props);
                session.setDebug(true);//发送过程打到控制台
                //1、得到发送邮件的对象
                Transport ts =  session.getTransport();
                //2、连接服务器
                ts.connect("smtp.sina.com", "xxxx", "xxxx");//邮箱名,密码
                //3、创建邮件
                MimeMessage message = makeMessage(session);
                //4、发送邮件
                ts.sendMessage(message, message.getAllRecipients());
                //5、关闭邮件发送对象
                ts.close();
        }

        private static MimeMessage makeMessage(Session session) throws Exception{
                MimeMessage message = new MimeMessage(session);//创建了一封邮件
                message.setFrom(new InternetAddress("xxxx@sina.com"));//设置发件人
                message.setRecipients(Message.RecipientType.TO,"xxxx@sina.com");//设置收件人的邮箱
                message.setSubject("这是一封邮件");
                //创建正文:文本
                MimeBodyPart text = new MimeBodyPart();
                text.setContent("你好中国", "text/html;charset=UTF-8");
                
                
                //描述两者之间的关系
                MimeMultipart mmp = new MimeMultipart();
                mmp.addBodyPart(text);

                message.setContent(mmp);//加到邮件对象中取
                message.saveChanges();//邮件就创建出来了
                return message;
        }

}


------解决方案--------------------
  最近,公司也有了这个这个需求,需要在页面上嵌入邮件发送的功能,我实现了下,基本上除了免费QQ邮箱不稳定外,其余的新浪等常用邮箱都测通了。
  错误提示是需要验证,
   首先需要 “//  props.setProperty("mail.auth", "true");”这句话写上,不要注掉。
   其次,将使用的发邮件的邮箱进行设置:登进你使用的发件邮箱,进入"更多设置"中的“账户”,在“POP3/SMTP服务”中选择“开启”,即授予该账户使用smtp协议。
  这样应该就可以了,不行的话,就是代码的问题了
  相关解决方案