各位大虾,小弟搞了一天JavaMail.但邮件总发不出去.谁能给我一个例子.或者贴上来.E_MAIL:[email protected]

解决方案 »

  1.   

    呵呵,给你个好东西
    http://jakarta.apache.org/commons/email/
    这是apache对javamail封装的一个包,用的更简单,代码写的更少,例子都是现成的,不会的问我。
      

  2.   

    Thanks! 老大.我英语不太好,看不懂
      

  3.   

    晕倒,这个包已经做的很简单了啊,楼主还真是够懒。import java.util.Properties;import javax.mail.Message;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;/**
     * @author Markey Meng
     * @since 2005-11-29
     * @version 1.0
     */
    public class Test { public static void main(String[] args) throws Exception {
    // create some properties and get the default Session 
    Properties props = new Properties();
    props.put("mail.smtp.host", "smtp服务器地址"); Session session = Session.getDefaultInstance(props, null);
    Message message = new MimeMessage(session); // create a message 
    InternetAddress ia[] = new InternetAddress[1];
    ia[0] = new InternetAddress("收信人地址", "Me"); message.setFrom(new InternetAddress("[email protected]", "some developer"));
    message.setRecipients(Message.RecipientType.TO, ia);
    message.setSubject("Hello World");
    message.setText(
    "Hello World!  This message was generated using JavaMail.");
    message.saveChanges(); Transport transport = session.getTransport("smtp");
    transport.connect();
    transport.send(message);
    }
    }
      

  4.   

    害的我又特意拷贝了一个,这个是直接采用javamail,不用commons-email的。
    是发信的一个最基本的例子,网上都有现成的例子,楼主为什么不亲自去找找呢。
    google搜索javamail就成了。
      

  5.   

    package com.beltino.common_java;import javax.mail.*;
    import java.util.*;
    import javax.mail.internet.*;
    import java.io.*;
    import javax.activation.*;public class JavaMail {
      String m_user = null; //用于需要验证的用户名
      String m_pass = null; //口令
      String m_server = null; //SMTP服务器名称
      int m_port = 25; //端口号,缺省为25
      String m_from = null; //发件人
      String m_to = null; //收件人
      String m_cc = null; //抄送
      String m_bcc = null; //密送
      String m_subject = null; //主题
      String m_body = null; //内容体
      LinkedList m_attach = null; //附件的文件名列表
      JavaMail() {
      }  //设定smtp服务器用户名(可选)
      public void setUser(String user) {
        m_user = user;
      }  //设定smtp服务器口令(可选)
      public void setPass(String pass) {
        m_pass = pass;
      }  //设定smtp的地址和端口号(可选)
      public void setServer(String server, int port) {
        if (port > 0) {
          m_port = port;
        }
        m_server = server;
      }  //设定smtp服务器地址,端口号使用缺省值
      public void setServer(String server) {
        m_server = server;
      }  //发件人
      public void setFrom(String from) {
        m_from = from;
      }  //收件人
      public void setTo(String to) {
        m_to = to;
      }  //抄送(可选)
      public void setCc(String cc) {
        m_cc = cc;
      }  //密送(可选)
      public void setBcc(String bcc) {
        m_bcc = bcc;
      }  //设置新的主题(可选)
      public void setSubject(String subject) {
        m_subject = subject;
      }  //设置信的内容,若以<html>或<HTML>开头的内容为text/html格式
      public void setBody(String body) {
        m_body = body;
      }  //可以多次添加附件,文件名最好是全路径,使用相对路径容易出错
      public void attach(String attachfile) {
        if (m_attach == null) {
          m_attach = new LinkedList();
        }
        m_attach.add(attachfile);
      }  public boolean sendMail() throws Exception {    Properties props = System.getProperties();
        props.setProperty("mail.transport.protocol", "smtp"); //smtp协议
        props.setProperty("mail.smtp.host", m_server); //服务器地址
        props.setProperty("mail.smtp.port", "" + m_port); //端口号    //认证信息
        if (m_user != null && m_pass != null && m_user.length() > 0 &&
            m_pass.length() > 0) {
          props.setProperty("mail.smtp.auth", "true");
        }    javax.mail.Session sess = javax.mail.Session.getDefaultInstance(props, null);
        MimeMessage msg = new MimeMessage(sess);    //发件人
        msg.setFrom(new InternetAddress(m_from));    //收件人、抄送、密送
        msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(m_to));
        if (m_cc != null && m_cc.length() > 0) {
          msg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(m_cc));
        }
        if (m_bcc != null && m_bcc.length() > 0) {
          msg.setRecipients(Message.RecipientType.BCC, InternetAddress.parse(m_bcc));
        }
        //主题
        if (m_subject != null) {
          msg.setSubject(m_subject);      //发件日期
        }
        msg.setSentDate(new Date());    //文本内容
        MimeMultipart content = new MimeMultipart();
        if (content == null) {
          return false;
        }    MimeBodyPart part;
        if (m_body != null && m_body.length() > 0) {
          part = new MimeBodyPart();
          String type = "text/plain";
          if (m_body.startsWith("<html>") || m_body.startsWith("<HTML>")) {
            type = "text/html";
          }
          part.setText(m_body);      //以<html>和<HTML>开始的文本为text/html类型
          part.setHeader("Content-Type", type);      content.addBodyPart(part);    }    //添加附件
        if (m_attach != null) {      String filename;
          Iterator it = m_attach.iterator();      while (it.hasNext()) {
            filename = (String) it.next();
            if (filename == null || filename.length() <= 0) {
              continue;
            }        part = new MimeBodyPart();
            FileDataSource fds = new FileDataSource(filename);
            part.setDataHandler(new DataHandler(fds));
            part.setFileName(MimeUtility.encodeText(fds.getName()));        content.addBodyPart(part);
          }
        }    //保存修改
        msg.setContent(content);
        msg.saveChanges();    //如果需要验证用户(如:smtp.sina.com.cn),则使用connect并sendMessage
        //注意必须设定mail.smtp.auth属性为true
        if (m_user != null && m_pass != null && m_user.length() > 0 &&
            m_pass.length() > 0) {
          Transport trans = sess.getTransport();
          trans.connect(m_server, m_user, m_pass);
          trans.sendMessage(msg, InternetAddress.parse(m_to));
          trans.close();
        }
        //否则,不需要用户名和口令使用静态方法发送由件
        else {
          Transport.send(msg);    }
        return true;
      }  public static void main(String argv[]) throws Exception {    JavaMail smtp = new JavaMail();
        smtp.setFrom("[email protected]");
        smtp.setTo("[email protected]");
        smtp.setCc("'李'<[email protected]>");    smtp.setServer("mail.aaa.com");
        smtp.setUser("xxx");
        smtp.setPass("yyy");    smtp.setSubject("你好,测试由件");
        smtp.setBody("<html><a href=hh>你好</a>,我的朋友\r\n还有</html>");
        smtp.attach("d:\\bbb.jpg");
        smtp.attach("d:\\TOrder修改.sql");    boolean ret = smtp.sendMail();    if(ret){
          System.out.println("发送成功");
        }else{
          System.out.println("发送失败");
        }  }}