props.put("mail.smtp.port", "80");
这句不对,SMTP端口应该是25。
你可以不写这句话,也可以把80改为25。

解决方案 »

  1.   

    可是我必须:首先发送到代理服务器上,代理的端口是80;然后代理再发送到指定的邮箱。
    有谁通过代理服务器用JavaMail发送过邮件??能提供点建议吗?
      

  2.   

    我想这段程序应该写在代理服务器上,本机上只要将各种邮件信息socket让代理服务器去接收好了。
      

  3.   

    难道你们用JAVAMAIL都不是通过代理服务器发出去的?
      

  4.   

    shanyuliang(良子):
    按照你说的:
        String server = "smtp.163.net";
        props.put("mail.smtp.port", "25");
    运行后出现下面信息,该怎样解释?
    DEBUG: SMTPTransport trying to connect to host "smtp.163.net", port 25javax.mail.MessagingException: Unknown SMTP host: smtp.163.net;
      nested exception is: 
    java.net.UnknownHostException: smtp.163.net
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:693)
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:168)
    at javax.mail.Service.connect(Service.java:227)
    at javax.mail.Service.connect(Service.java:131)
    at testjava.MainFrm.sendMail(MainFrm.java:125)
    at testjava.MainFrm.jButton1_actionPerformed(MainFrm.java:136)
    at testjava.MainFrm$1.actionPerformed(MainFrm.java:49)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1450)
    at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1504)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:378)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:250)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:216)
    at java.awt.Component.processMouseEvent(Component.java:3717)
    at java.awt.Component.processEvent(Component.java:3546)
    at java.awt.Container.processEvent(Container.java:1167)
    at java.awt.Component.dispatchEventImpl(Component.java:2595)
    at java.awt.Container.dispatchEventImpl(Container.java:1216)
    at java.awt.Component.dispatchEvent(Component.java:2499)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:2458)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:2223)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:2132)
    at java.awt.Container.dispatchEventImpl(Container.java:1203)
    at java.awt.Window.dispatchEventImpl(Window.java:918)
    at java.awt.Component.dispatchEvent(Component.java:2499)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:336)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:134)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:96)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:88)
      

  5.   

    你们的局域网服务器屏蔽了163的SMTP服务器,你可以使用你们的局域网自己的SMTP服务器啊!
      

  6.   

    可能是这样。
    我们也用的是自己的mail服务器。
      

  7.   

    我的程序也有问题
    /*
    // header - edit "Data/yourJavaHeader" to customize
    // contents - edit "EventHandlers/Java file/onCreate" to customize
    //
    */
    import java.util.*;
    import java.io.*;
    import javax.mail.*;
    import javax.mail.internet.*;
    import javax.activation.*;class mail
    {
    static String msgText1 = "This is a message body.\nHere’s line two.";
    static String msgText2 = "This is the text in the message attachment."; public static void main(String[] args){
    //JavaMail. API Design Specification September 2000
    String to = "[email protected]";
    String from = "[email protected]";
    String host = "smtp.263.net";
    boolean debug = true;//Boolean.valueOf(args[3]).booleanValue();
    // create some properties and get the default Session
    Properties props = new Properties();
    props.put("mail.smtp.host", host);
    props.put("mail.smtp.port", "25");
    props.put("mail.smtp.auth", "true");
    props.put("mail.bebug", "true");
    Session session = Session.getDefaultInstance(props, null);
    session.setDebug(debug);
    //System.out.println(session);
    MimeMessage msg = new MimeMessage(session);
    try {
    // create a message
    Transport transport = session.getTransport("smtp");
    msg.setFrom(new InternetAddress(from));
    InternetAddress[] address = {new InternetAddress(to)};
    msg.setRecipients(Message.RecipientType.TO, address);
    msg.setSubject("JavaMail APIs Multipart Test");
    msg.setSentDate(new Date());
    // create and fill the first message part
    MimeBodyPart mbp1 = new MimeBodyPart();
    mbp1.setText(msgText1);
    // create and fill the second message part
    MimeBodyPart mbp2 = new MimeBodyPart();
    // Use setText(text, charset), to show it off !
    mbp2.setText(msgText2, "us-ascii");
    // create the Multipart and its parts to it
    Multipart mp = new MimeMultipart();
    //80 Appendix B: Examples Using the JavaMail API
    //Example: Sending a Message
    mp.addBodyPart(mbp1);
    mp.addBodyPart(mbp2);
    // add the Multipart to the message
    msg.setContent(mp);
    // send the message
    //Transport trans = session.getTransport("SMTP"); //Transport.send(msg);
    } catch (MessagingException mex) {
    mex.printStackTrace();
    Exception ex = null;
    if ((ex = mex.getNextException()) != null) {
    ex.printStackTrace();
    }
    }

    }}
    出现这个exceptionjavax.mail.NoSuchProviderException: No provider for smtp
    at javax.mail.Session.getProvider(Session.java:249)
    at javax.mail.Session.getTransport(Session.java:442)
    at javax.mail.Session.getTransport(Session.java:423)
    at mail.main(mail.java:40)清高手帮忙看看
      

  8.   

    这是你javamail的包中com.sun.smtp.*类不存在。请指定classpath