props.setProperty("mail.smtp.user","dlmlzz6");
Message msg=new MimeMessage(session);
msg.setFrom(new InternetAddress("[email protected]"));如果我把
msg.setFrom(new InternetAddress("[email protected]"));
它就不让我发出去。可是我在dos下却可以任意指定发件人。
有没有其他隐藏,伪装发件人的方法??

解决方案 »

  1.   

    这个不用阿  我用telnet发邮件,  发件人都可以和用户名不一样捏.!
      

  2.   

    telnet我也会啊,就是用javamail的时候不行
      

  3.   


      <%@ page contentType="text/html;charset=GBK" %>
    <%@ page import="javax.mail.*, javax.mail.internet.*"%> 
    <%@ page import="javax.activation.*,java.util.*"%> 
    <%
    try {
    String strHost = "smtp.163.com";
    int nPort = 0;
    String strUserName = "XXXXX"; //发件人的邮箱姓名
    String strPassWord =".........";//邮箱密码
    String strFrom = "[email protected]"; //发件人的邮箱地址
    String strToList = "[email protected]"; //收件人的邮箱地址;这里可以使qq邮箱,163....
    String strCCList ="";
    String strBCCList = "";
    String strSubject = "javamail!"; //邮箱的主题
    String strMessage = "利用javamail发邮件....";  //发件内容
    //创建邮件的属性
    Properties props = new Properties();
    props.put("mail.smtp.host", strHost);
    props.put("mail.smtp.auth", "true");
    Session MailSession = Session.getDefaultInstance(props, null);
    MailSession.setDebug(true);
    //创建一个消息
    Message msg = new MimeMessage(MailSession);
    //发件人地址
    InternetAddress from = new InternetAddress(strFrom);
    msg.setFrom(from);
    //目标地址
    if (strToList != null && strToList.length() > 0) {
    InternetAddress[] to = { new InternetAddress(strToList)};
    msg.setRecipients(Message.RecipientType.TO, to);
    } else {
    throw new Exception("No Recipient");
    }
    //抄送
    if (strCCList != null && strCCList.length() > 0) {
    InternetAddress[] cc = { new InternetAddress(strCCList)};
    msg.setRecipients(Message.RecipientType.CC, cc);
    }
    //密送
    if (strBCCList != null && strBCCList.length() > 0) {
    InternetAddress[] bcc = { new InternetAddress(strBCCList)};
    msg.setRecipients(Message.RecipientType.BCC, bcc);
    }
    //添加邮件的主题
    if (strSubject != null) {
    msg.setSubject(strSubject);
    }
    //添加邮件的日期
    msg.setSentDate(new Date());
    //添加邮件的内容
    if (strMessage != null && strMessage.trim().length() > 0) {
    msg.setText(strMessage);
    } else{
    msg.setText("No message to be sent!");
    }
    msg.saveChanges();
    //发送邮件
    int nMailPort = -1;
    if (nPort > 0)
    nMailPort = nPort;
    Transport transport = MailSession.getTransport("smtp");
    transport.connect(strHost, nMailPort, strUserName, strPassWord);
    transport.sendMessage(msg, msg.getAllRecipients());
    transport.close();
    out.print("邮件发送成功!");
    } catch (AuthenticationFailedException ae) {
    ae.printStackTrace();
    } catch (SendFailedException sf) {
    Address[] invalid = sf.getInvalidAddresses();
    Address[] valid = sf.getValidSentAddresses();
    Address[] unsend = sf.getValidUnsentAddresses();
    sf.printStackTrace();
    } catch (Exception e) {
    e.printStackTrace();
    }
    %>
     
     这是一个用jsp发邮件,这里只支持发文本,不支持发附件等。希望对楼主有点点帮助.....
      

  4.   

    msg.setFrom(new InternetAddress("[email protected]","[email protected]",("GB2312")));
     
    即可,但是在QQ中不能正常显示,仍然显示原来的地址!