转自:http://blog.csdn.net/qq422733429/article/details/51280020
打开QQ邮箱,点击设置
点击帐户
找到SMTP服务的选项,可以看到此处默认是关闭的,点击开启,然后腾讯会进行一些身份验证,身份验证通过以后,腾讯会给出一个用于使用SMTP的16位口令,此处这个口令一定牢记,因为后面要使用SMTP功能必须要用到这个口令,没有这个口令即使知道QQ邮箱密码也没有用,此处未给出口令的截图,毕竟为了隐私保密,不然大家都可以登录使用我的QQ邮箱SMTP服务了。后面我们将该口令记为SMTP口令。
接下就要开始写代码了 。 首先,要使用Java的邮箱功能需要javax.mail这个jar包,此处给出该jar包的百度盘地址。[http://pan.baidu.com/s/1dE8c0fv]
下面是发送邮件的具体java代码
import java.util.Properties; import javax.mail.Authenticator; import javax.mail.MessagingException; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.Message.RecipientType; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class Demo2 { /** * @param args * @throws MessagingException */ public static void main(String[] args) throws MessagingException { // 创建Properties 类用于记录邮箱的一些属性 final Properties props = new Properties(); // 表示SMTP发送邮件,必须进行身份验证 props.put("mail.smtp.auth", "true"); //此处填写SMTP服务器 props.put("mail.smtp.host", "smtp.qq.com"); //端口号,QQ邮箱给出了两个端口,但是另一个我一直使用不了,所以就给出这一个587 props.put("mail.smtp.port", "587"); // 此处填写你的账号 props.put("mail.user", "自己的邮箱@qq.com"); // 此处的密码就是前面说的16位STMP口令 props.put("mail.password", "jxprkpxrwzfubbgg"); // 构建授权信息,用于进行SMTP进行身份验证 Authenticator authenticator = new Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { // 用户名、密码 String userName = props.getProperty("mail.user"); String password = props.getProperty("mail.password"); return new PasswordAuthentication(userName, password); } }; // 使用环境属性和授权信息,创建邮件会话 Session mailSession = Session.getInstance(props, authenticator); // 创建邮件消息 MimeMessage message = new MimeMessage(mailSession); // 设置发件人 InternetAddress form = new InternetAddress( props.getProperty("mail.user")); message.setFrom(form); // 设置收件人的邮箱 InternetAddress to = new InternetAddress("发送到别人的邮箱@qq.com"); message.setRecipient(RecipientType.TO, to); // 设置邮件标题 message.setSubject("测试邮件"); // 设置邮件的内容体 message.setContent("发出信息了!!!!", "text/html;charset=UTF-8"); // 最后当然就是发送邮件啦 Transport.send(message); } }
至此,邮件就应该能成功发出去啦。 本文是日常开发的随手记录,如有问题,请博内留言以帮助我改正和完善,一起努力,一起学习,一起进步!如果觉得有帮助,记得赞一个哟。