您的位置:首页 > 编程语言 > Java开发

使用JAVA模拟发送邮件到邮箱

2017-03-27 21:42 477 查看
1.设置邮箱(以QQ邮箱为例),进入邮箱,点击设置。找到账户,按下图所示进行设置


2.新建工程,导入jar包,下载地址:点击下载

3.新建main.java

public class main {
public static void main(String[] args) {
// JavaMail应用-用自己的QQ邮箱来发送服务器的数据
// 发送邮件是一件非常耗时的事情,因此这里开辟了另一个线程来专门发送邮件
sendmail send = new sendmail();
// 启动线程,线程启动之后就会执行run方法来发送邮件
send.start();
}
}


4.新建sendmail.java

import java.util.Date;
import java.util.Properties;

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

public class sendmail extends Thread{
private String from = "发送邮件的邮箱地址";

//授权码 从QQ上获得
private String password = "邮箱密码";

//收件箱
private String to="接受邮件的邮箱地址";

/* 重写run方法的实现,在run方法中发送邮件给指定的用户
* @see java.lang.Thread#run()
*/
@Override
public void run() {
try{

Properties prop = new Properties();

prop.setProperty("mail.transport.protocol", "smtp");

prop.setProperty("mail.smtp.host", "smtp.qq.com");

prop.setProperty("mail.smtp.auth", "true");

final String smtpPort = "465";

prop.setProperty("mail.smtp.port", smtpPort);

prop.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

prop.setProperty("mail.smtp.socketFactory.fallback", "false");

prop.setProperty("mail.smtp.socketFactory.port", smtpPort);

prop.setProperty("mail.debug", "true");

Session session = Session.getDefaultInstance(prop);

session.setDebug(true);

MimeMessage message = createMimeMessage(session, from, to);

Transport transport = session.getTransport();

transport.connect( from, password);

transport.sendMessage(message, message.getAllRecipients());

transport.close();
}catch (Exception e) {
throw new RuntimeException(e);
}
}

public static MimeMessage createMimeMessage(Session session, String sendMail, String receiveMail) throws Exception {
// 1. 创建一封邮件
MimeMessage message = new MimeMessage(session);

// 2. From: 发件人
message.setFrom(new InternetAddress(sendMail, "测试邮件", "UTF-8"));

// 3. To: 收件人(可以增加多个收件人、抄送、密送)
message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(receiveMail, "用户名", "UTF-8"));

// 4. Subject: 邮件主题
message.setSubject("测试邮件", "UTF-8");

// 5. Content: 邮件正文(可以使用html标签)
message.setContent("这是一封测试邮件!", "text/html;charset=UTF-8");

// 6. 设置发件时间
message.setSentDate(new Date());

// 7. 保存设置
message.saveChanges();

return message;
}
}


5.效果图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java