比如
我想让对方收到信后发件人那一栏显示的是其他邮件地址,怎么办到?message对象的setFrom()方法好像必须填写[email protected]这个地址,否则验证会失败
而这个地址也最终显示到了发件人栏中。但是直接用SMTP命令编写的话,DATA命令之后的To:   From:就是可以随便写的啊
难道JavaMail中不让这样?那位高人能解释一下,SMTP命令中的MAIL FROM:<地址1>         RCPT TO:<地址2>
还有DATA命令之后的 From:<地址3>   TO:<地址4>这些地址对应在JavaMail中是在哪些地方设置的?
好像在JavaMail中,只需要设置下面这两个属性就行了
message.setFrom(addressFrom);
message.addRecipient(Message.RecipientType.TO,addressTo);还是JavaMail中已经默认上面的<地址1>作为<地址3>
<地址2>作为<地址4>

解决方案 »

  1.   

    这要看你是使用哪一个发件服务器(smtp服务器),你如果使用 pop.163.com 来发信,那么就需要验证。现在一般的服务器都要求验证,不允许不真实的发件人。你如果需要 "让对方收到信后发件人那一栏显示的是其他邮件地址" ,你可以使用你的本机作为发件服务器:你可以安装IIS中的SMTP服务器,也可以安装一个 IMail软件。
      

  2.   

    可能是我没有说明白,我的意思是这样的
    当使用SMTP命令直接发送邮件的时候,下面的命令就可以直接发送成功
    mail from: [email protected]我注册的邮箱(存在) 
    rcpt to: [email protected]其他另一个邮箱(也真实存在)
    data
    From: [email protected]随便写的邮箱(不存在)
    To: [email protected]随便写的邮箱(不存在)
    Subject: testHi
    This is a test mail, you don't reply it. .quit执行完以后登陆[email protected]会收到邮件
    显示的发件人是[email protected]
    收件人是[email protected]
    而这两个邮箱本身并不存在我想知道的是在JavaMail中怎么实现这种效果?
      

  3.   


    不要调用那个静态的发送消息的方法可以参照里面的代码封装一个自己的方法就可以了。那个方法默认是从message里去获取From,你只要对这个方法修改一下,通过自己设置From就成了,读一下javamail的源代码就明白了。