代码一、Email_Autherticator.java 服务器验证代码import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;public class Email_Autherticator extends Authenticator {
    String username = "rhymetan";
    
    String password = "woyao740";
    public Email_Autherticator() {
        super();
    }
    public Email_Autherticator(String user,String pwd){
        super();
        username = user;
        password = pwd;
    }
    public PasswordAuthentication getPasswordAuthentication(){
        return new PasswordAuthentication(username,password);
    }
}代码二、Mail.java  发送邮件代码
import java.util.Date;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.SendFailedException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;public class Mail {
    private String host = "smtp.163.com";
    
    private String mail_head_name = "this is head of this mail";
    
    private String mail_head_value = "this is head of this mail";
    
    private String mail_to = "[email protected]";
    
    private String mail_from = "[email protected]";
    
    private String mail_subject = "this is the subject of this test mail";
    
    private String mail_body = "this is mail_body of this test mail";
    
    private String personalName = "我的邮件";
    public void sendMail() throws SendFailedException{
        boolean flag = false;
        try {
            Properties props = new Properties();//获取系统环境
            Authenticator auth = new Email_Autherticator();//进行邮件服务用户认证
            props.put("mail.smtp.host", host);
            props.put("mail.smtp.auth", true);
            System.out.println(props);
            Session session = Session.getDefaultInstance(props,auth);
            //设置session,和邮件服务器进行通讯
            MimeMessage message = new MimeMessage(session);
            message.setContent("Hello","text/plain");//设置邮件格式
            message.setSubject(mail_subject);//设置邮件主题
            message.setText(mail_body);//设置邮件内容
            message.setHeader(mail_head_name, mail_head_value);//设置邮件标题
            message.setSentDate(new Date());//设置邮件发送时期
            Address address = new InternetAddress(mail_from,personalName);
            message.setFrom(address);//设置邮件发送者的地址
            Address toaddress = new InternetAddress(mail_to);//设置邮件接收者的地址
            message.addRecipient(Message.RecipientType.TO,toaddress);
            System.out.println(message);
            Transport.send(message);
            System.out.println("Send Mail Ok!");
        } catch (Exception e) {
            e.printStackTrace();
        }
        //return flag;
    }
}代码三、Test.java   测试代码public class Test {
    public static void main(String[] args) {
        Mail m = new Mail();
        try {
            m.sendMail();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}哪位大虾会用的来帮小弟看看了!小弟在这先谢了!在线等,急啊!

解决方案 »

  1.   

    true带引号,不带报错吧
       props.put("mail.smtp.auth", "true");
    你看看你引用了activation.jar了嘛
      

  2.   

    我用的126的邮箱发的,改了下用户,就发送成功了
      private String host = "smtp.126.com";
        
        private String mail_head_name = "this is head of this mail";
        
        private String mail_head_value = "this is head of this mail";
        
        private String mail_to = "[email protected]";
        
        private String mail_from = "[email protected]";
      

  3.   

    你的用户名和  密码   mail_to   mail_from  都是有效的就没什么问题
    刚搞过一个邮件发送功能
      

  4.   

    www.java2000.net  上有个例子  你可以去看看
    你的这个功能只是能简单测试邮件服务器    还没做出附件发送
      

  5.   

    还是不行啊,我加了mail.jar和activation.jar true也加了双引号换了126的邮箱   smtp.126.com它还是报错
      

  6.   

    javax.mail.SendFailedException: Sending failed;
      nested exception is:
    class javax.mail.AuthenticationFailedException
    at javax.mail.Transport.send0(Transport.java:218)
    at javax.mail.Transport.send(Transport.java:80)
    at com.rhyme.dao.Mail.sendMail(Mail.java:50)
    at com.rhyme.dao.Test.main(Test.java:7)
    这是错误的信息