日期:2014-05-20  浏览次数:20743 次

JavaMail


package com.javamail;

import java.util.Properties;

import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

/**
 * 使用JavaMail发送一封简单的邮件
 * 1、创建包含邮件服务器的网络连接信息的session对象
 * 2、创建代表邮件内容的message对象
 * 3、创建transport对象、连接服务器、发送message、关闭连接
 * @author LW
 *
 */
public class Demo1 {


public static void main(String[] args) {
// TODO Auto-generated method stub
Properties props = new Properties();
props.setProperty("mail.smtp.auth", "true");//认证方式
props.setProperty("mail.transport.protocol", "smtp");//传输协议smtp

Session session = Session.getDefaultInstance(props);
session.setDebug(true);//获取调试信息

Message message = new MimeMessage(session);
try {

message.setText("hello sina and qq");//邮件内容
message.setFrom(new InternetAddress("452145824@qq.com"));//发件人

Transport transport = session.getTransport();
transport.connect("smtp.sina.com", 25, "1508745247@sina.cn", "305132");//连接服务器,新浪邮箱服务器的端口号25
transport.sendMessage(message, new Address[]{new InternetAddress("1508745247@sina.cn")});//非静态发送方式
transport.close();

} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}

}

}


打印出来了debug调试信息,邮件已经成功发送,但是,在邮箱里怎么收不到呢?但是,我用outlook收发邮件时,把发件人和收件人都用一个邮箱时却能够收到。
这是怎么一回事?另外,我在outlook配置了qq邮箱服务器,用qq邮箱发送到sina邮箱,在outlook中也没有收到,这又是怎么一回事。求高人赐教

------解决方案--------------------
 不知道你是怎么操作的 我的为什么就可以成功?莽荒纪
------解决方案--------------------
不是代码的问题,可以成功。
------解决方案--------------------
某些邮箱需要设置才能开启smtp功能。和代码无关。