大家看看这个贺卡网站,怎么发的?http://card.china.com/card/html_card/2859.html,谢谢大家了

解决方案 »

  1.   

    通过DNS查找MX记录来发:import java.util.ArrayList;
    import java.util.Hashtable;import javax.naming.Context;
    import javax.naming.NamingEnumeration;
    import javax.naming.NamingException;
    import javax.naming.directory.Attribute;
    import javax.naming.directory.Attributes;
    import javax.naming.directory.DirContext;
    import javax.naming.directory.InitialDirContext;...String mailAddr = "[email protected]"; //收件人
    String domain = mailAddr.substring(mailAddr.indexof('@') + 1);
    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.dns.DnsContextFactory");
    env.put(Context.PROVIDER_URL, "dns://192.168.5.100/"); //设置DNS服务器
    DirContext dnsContext = new InitialDirContext(env);
    Attributes a = dnsContext.getAttributes(domainName, new String[]{ "MX" });
    NamingEnumeration all = a.getAll();
    ArrayList tmp = new ArrayList();
    while (all.hasMore())
    {
    Attribute attr = (Attribute) all.next();
    NamingEnumeration values = attr.getAll();
    while (values.hasMore())
    tmp.add((String) values.next());
    }String[] hosts = new String[tmp.size()];
    tmp.toArray(hosts);
    for(int i=0; i<hosts.length; i++)
    {
    //通过hosts[i]发邮件
    if(成功)
    break;
    }
      

  2.   

    Attributes a = dnsContext.getAttributes(domainName, new String[]{ "MX" });
    应该改为:
    Attributes a = dnsContext.getAttributes(domain, new String[]{ "MX" });
      

  3.   

    http://www.amaxit.net/doc/mail_dns_domain.asp
    http://b2b.east.net/bookonline/mail.html#g
    http://www.magicwinmail.com/technic_dns.htm
      

  4.   

    你不必非要用那些邮件服务器的smtp来发信,你用自己的smtp服务器发信,但发信人和回信地址写用户的地址即可,垃圾邮件就是这么发信的,这也是当前邮件系统的缺点之一。
      

  5.   

    我这里有个BEAN,调试通过的
    package bean;
    import bean.Email_Autherticatorbean;
    import java.io.*;
    import java.net.InetAddress;
    import java.util.Properties;
    import java.util.Date;import javax.mail.*;
    import javax.mail.internet.*;
    import javax.activation.*;
    public class sendMail {    public static void main(String[] argv) {
            new sendMail(argv);
        }
    public sendMail(String[] argv) {
          //收件人
          String to = null;
          //发件人
          String from = null;
          //主题
          String subject = null;
          //抄送人
          String cc = null;
          //暗抄送
          String bcc = null;
          // mail 主机
          String mailhost = null;
          // mail 内容
          String content = null;
          //MIME邮件对象
          MimeMessage mimeMsg = null;
          //邮件会话对象
          Session session = null;
          //附件的文件名
          String fileAttachment = null;
          
          String user  = null;
          String password    = null;
          
          
     
            try
        {
            mailhost = "smtp.163.com";
            from  = "[email protected]";
            to  = "[email protected]";
            cc="[email protected]";
            subject  = "您好wwwwwwwww";
            content  = "带附件的wwwwwwwwww";
            user="test";
            password="test";
    fileAttachment="c://tis.jpg";
            Properties props = System.getProperties();  //获得系统属性
            props.put("mail.smtp.host", mailhost);      //设置SMTP主机
             props.put("mail.smtp.auth","true");         //设置身份验证为真,若须身份验证则必须设为真        //获得邮件会话对象
            //session = Session.getDefaultInstance(props,null);
            //注意下面这行的 Session.getDefaultInstance 方法的第二个参数
            session = Session.getDefaultInstance(props, new Email_Autherticatorbean(user,password));
            //创建MIME邮件对象
            mimeMsg = new MimeMessage( session );
            //设置发信人
            mimeMsg.setFrom(new InternetAddress( from ) ); 
            if(to!=null){
               mimeMsg.setRecipients( Message.RecipientType.TO, InternetAddress.parse( to ) );
            }
            if(cc!=null){
               mimeMsg.setRecipients( Message.RecipientType.CC, InternetAddress.parse( cc ) );
            }                //设置邮件主题
            mimeMsg.setSubject(subject,"GBK");
            // 第一部分信息
            MimeBodyPart mbp1 = new MimeBodyPart();
            mbp1.setText( content, "GBK");        // 第二部分信息
            MimeBodyPart mbp2 = new MimeBodyPart();        // 在第二部分信息中附加一个文件
            FileDataSource fds = new FileDataSource( fileAttachment );
            mbp2.setDataHandler(new DataHandler(fds));
            mbp2.setFileName(fds.getName());        // 创建 Multipart 并放入每个 MimeBodyPart
            Multipart mp = new MimeMultipart();
            mp.addBodyPart( mbp1 );
            mp.addBodyPart( mbp2 );        // 增加 Multipart 到信息体
    mimeMsg.setContent( mp );        //发送日期
            mimeMsg.setSentDate(new Date());
            //发送邮件
            Transport.send( mimeMsg );
            System.out.println( "email send!");      } catch (Exception e) {
            e.printStackTrace();
          }
        }
    }