当前位置: 代码迷 >> J2EE >> javaMail 的setFrom()有关问题
  详细解决方案

javaMail 的setFrom()有关问题

热度:838   发布时间:2016-04-22 02:04:21.0
javaMail 的setFrom()问题
最近在学习javaMail,可是有一个问题让我很是奇怪,message.setForm()方法里面的InternetAddress总是必须和我连接smtp服务器用的用户名要一样,不然就发送不出去,如果不设置message的setForm在Transport里面设置,或者setForm里面填写其他地址,邮件就都发送不出去,而且没有错误提示!
各位大侠可以指点我一下吗?
Java code
public static void main(String[] args) throws Exception {        Properties props = new Properties();        props.setProperty("mail.debug", "true"); //输出debug信息        props.setProperty("mail.transport.protocol","smtp"); //协议        props.setProperty("mail.auth", "true"); //用户验证        Session session =Session.getInstance(props); // 创建Session                String date = DateFormat.getTimeInstance().format(new Date(System.currentTimeMillis())); //区分标示作用                Message message = new MimeMessage(session); // 创建邮件体        message.setText("路遥知马力!"); //邮件内容:简单的        message.setSubject("javaMial" + date ); //邮件主题        message.setFrom(new InternetAddress("862123204@qq.com")); //发件人(这里好像要和connect()里面的user要相同???)                Transport transport = session.getTransport(); //创建发送器        transport.connect("smtp.qq.com", 25, "862123204", "password");  //连接smtp服务器,准备发送        transport.sendMessage(message, new Address[]{new InternetAddress("studyjavaee@163.com"),new InternetAddress("zhanglelife@163.com")});                transport.close(); //关闭资源        


------解决方案--------------------
setFrom 是你用哪个邮箱发送的,smtp是你发送的邮箱的邮箱协议。。肯定要一样的阿。。
------解决方案--------------------
我记得是可以不一样,但是似乎是在smtp一样的情况下可以。
比如你是用smtp.163.com 的,你登录的时候是用wwww@163.com
但是你在setFrom时可以换成其他的163的邮箱(如kkk@163.com)
我记得以前试过,你试试看现在能不能行了