我原来写过一个,你看看先。
http://expert.csdn.net/Expert/topic/679/679555.xml?temp=.512356尤其是这一段: if(username != null && password != null) {
trans.connect(host, username, password);
msg.saveChanges();
        } else {
         trans.connect();
        }

解决方案 »

  1.   

    换个smtp服务器试试,因为163.net可能需要进行加密传输,但是ehlo/helo看不到他服务器的信息。
      

  2.   

    搂住明显人品问题,我拿你的程序已经成功发信了,你试试换个mailserver,我用的是163.com的邮箱,用你的程序没什么问题。
      

  3.   

    楼上的不会吧!!???
    难道我真的是RPWT!!我用163.net,163.com,21cn.com都试过了!!!
    运行时出现的错误:
    DEBUG: SMTPTransport connected to host "smtp.163.com", port: 25
    DEBUG SMTP SENT: mail from: <[email protected]>DEBUG SMTP RCVD: 553 You are not authorized to send mail as <mail from: <[email protected]>>, authentication is required
    javax.mail.MessagingException: 553 You are not authorized to send mail as <mail from: <[email protected]>>, authentication is required
      

  4.   

    这个不会还跟没公网ip有关吗??是不是没公网ip就不行???
      

  5.   

    问题出在
    Session session = Session.getDefaultInstance(props,new Authenticator() {
                    protected PasswordAuthentication getPasswordAuthentication() {
                        return new PasswordAuthentication("123","123");
                    }
      

  6.   

    不会是什么ip的问题,你都已经连上了。请问你在mail from那段填的是合法的email地址吗?你不会像通过程序法垃圾邮件吧?
      

  7.   

    当然是合法的拉,我自己的邮箱。上面贴的xxx.163.com是为了不想公开自己的邮箱而改的。
      

  8.   

    //from javamail apiTransport tr = session.getTransport("smtp");
    tr.connect(smtphost, username, password);
    msg.saveChanges(); // don't forget this
    tr.sendMessage(msg, msg.getAllRecipients());
    tr.close();
      

  9.   

    C:\JBuilder7\jdk1.3.1\bin\javaw -classpath "C:\javatest\SendMail\classes;C:\JBuilder7\jdk1.3.1\demo\jfc\Java2D\Java2Demo.jar;C:\JBuilder7\jdk1.3.1\jre\lib\i18n.jar;C:\JBuilder7\jdk1.3.1\jre\lib\jaws.jar;C:\JBuilder7\jdk1.3.1\jre\lib\rt.jar;C:\JBuilder7\jdk1.3.1\jre\lib\sunrsasign.jar;C:\JBuilder7\jdk1.3.1\lib\dt.jar;C:\JBuilder7\jdk1.3.1\lib\htmlconverter.jar;C:\JBuilder7\jdk1.3.1\lib\tools.jar;C:\JBuilder7\lib\j2ee.jar"  sendmail.testmail DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
    DEBUG: SMTPTransport trying to connect to host "smtp.163.com", port 25
    DEBUG SMTP RCVD: 220 Welcome to coremail System(With Anti-Spam) 2.1 for www.163.com
    DEBUG SMTP SENT: helo zhpDEBUG SMTP RCVD: 250 192.168.1.204
    DEBUG: SMTPTransport connected to host "smtp.163.com", port: 25
    DEBUG SMTP SENT: mail from: <[email protected]>DEBUG SMTP RCVD: 553 You are not authorized to send mail as <mail from: <[email protected]>>, authentication is required
    DEBUG SMTP SENT: quit
      

  10.   

    不用这段代码:
    Session session = Session.getDefaultInstance(props,new Authenticator() {
                    protected PasswordAuthentication getPasswordAuthentication() {
                        return new PasswordAuthentication("123","123");
                    }
                });
      

  11.   

    换成 Session session = Session.getDefaultInstance(props,null);
    也不行阿。
    刚刚看到一个贴说和DNS设置有关??那DNS该如何设??
      

  12.   

    和DNS设置有关?
    无关!因为你都连上了。如果你的ip以被163.net作为“禁止”,那另当别论。用下面的代码测试的码?
    Transport tr = session.getTransport("smtp");
    tr.connect(smtphost, username, password);
    msg.saveChanges(); // don't forget this
      

  13.   

    没有问题呀。不过我用smtp.sohu.com做的测试。
    提醒一下:
    message.saveChanges(); // don't forget this//before you send message
    tr.sendMessage(message, message.getAllRecipients());
      

  14.   

    还有最好不要测试自己发自己
    如:
    [email protected]>[email protected]
    应该使用:
    [email protected]>[email protected] 或
    [email protected]>[email protected]
      

  15.   

    算了,我这里还是不行,郁闷阿,散分了。
    再次感谢 takecare(大厅) 的帮忙。