要在网络上文现邮件功能。必须要有专门的邮件服务器

SMTP服务器地址:我们这里用的QQ的邮件是smtp.qq.com

 

使用Java发送E-mail十分简单,首先你应该准备JavaMail API和Java Activation Framework。

得到两个jar包:

mail.jar

activation.jar

 

然后去qq邮箱开启发送邮件POP3/SMTP服务

javaqq触屏版 qq java_java

 

javaqq触屏版 qq java_java_02

开启之后会生成一个授权码,这个记得保存下来

然后就是建一个测试类

import com.sun.mail.util.MailSSLSocketFactory;

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import java.security.GeneralSecurityException;
import java.util.Properties;

//发送一封简单的邮件
public class MailDemo01 {
    public static void main(String[] args) throws Exception {

        //创建一封邮件
        Properties prop = new Properties();
        prop.setProperty( "mail.host", "smtp.qq.com");//设置QQ邮件服务器
        prop.setProperty("mail.transport.protocol", "smtp");// 邮件发送协议
        prop.setProperty( "mail.smtp.auth", "true");//需要验证用户名密码

        //关于QQ邮箱,还要设置SSL加密,加上以下代码即可
        MailSSLSocketFactory sf = new MailSSLSocketFactory();
        sf.setTrustAllHosts(true);
        prop.put("mail.smtp.ssl.enable","true");
        prop.put( "mail.smtp.ssl.socketFactory", sf);


        //使用JavaMail发送邮件的5个步骤
        //1、创建定义整个应用程序所需的环境信息的Session对象
        //QQ独有的
        Session session = Session.getDefaultInstance(prop,new Authenticator() {
            public PasswordAuthentication getPasswordAuthentication( ) {
                //发件人邮件用户名、授权码
                return new PasswordAuthentication( "自己的qq邮箱xx@qq.com","授权码");//授权码在刚开启的时候生成,也可以后续生成

        }
});

        //开启Session的debug模式,这样可以查看程序发送Email的运行状态
        session.setDebug(true);
        //2、通过session得到transport对象
        Transport ts = session.getTransport();

        //3、使用邮箱的用户名和授权码连上邮件服务器
        ts.connect("smtp.qq.com","自己的qq邮箱xx@qq.com","blxhyxjzteywcagf");
        //4、创建邮件
        //注意需要传递session
        MimeMessage message = new MimeMessage( session);

        //指明邮件的发件人
        message.setFrom(new InternetAddress("自己的qq邮箱xx@qq.com"));

        //指明邮件的收件人,也可以发给自己
        message.setRecipient(Message.RecipientType.TO,new InternetAddress("别人的qq邮箱xx@qq.com"));

        //邮件的标题
        message.setSubject("这是一个测试邮件");//

        //邮件内容
        message.setContent("<h1>你好呀!</h1>","text/html;charset=UTF-8");

        //5、发送邮件
        ts.sendMessage(message,message.getAllRecipients());

        //关闭连接
        ts.close();
    }
}

//运行以上代码就可以实现简单的邮件发送了