当前位置:编程学习 > JAVA >>

javamail中是不是用户名和发件人要一样才可以发送邮件啊?

props.setProperty("mail.smtp.user","dlmlzz6");
Message msg=new MimeMessage(session);
msg.setFrom(new InternetAddress("dlmlzz6@sohu.com"));

如果我把
msg.setFrom(new InternetAddress("11111@sohu.com"));
它就不让我发出去。可是我在dos下却可以任意指定发件人。
有没有其他隐藏,伪装发件人的方法?? --------------------编程问答-------------------- 这个不用阿  我用telnet发邮件,  发件人都可以和用户名不一样捏.! --------------------编程问答-------------------- telnet我也会啊,就是用javamail的时候不行 --------------------编程问答--------------------

  <%@ 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 = "XXXX@163.com"; //发件人的邮箱地址
String strToList = "XXXX@qq.com"; //收件人的邮箱地址;这里可以使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发邮件,这里只支持发文本,不支持发附件等。希望对楼主有点点帮助..... --------------------编程问答-------------------- msg.setFrom(new InternetAddress("11111@sohu.com","name@xx.com",("GB2312")));
 
即可,但是在QQ中不能正常显示,仍然显示原来的地址!
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,