使用Java发送邮件需要用到JavaMail技术
- JavaMail
- JavaBeans Activation Framework(JAF)
其中,JAF已包含在java1.6以上版本中,无需下载。
下载JavaMail,解压,在根目录中找到mail.jar添加到classpath中
安装邮件服务器
发送邮件需安装邮件服务器,否则无法发送邮件
程序代码如下:
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;
/**
* 发送邮件
*/
public class MailDemo {
public static void main(String[] args) {
// 收件人
String to = "test@qq.com";
// 发件人
String from = "test@gmail.com";
// 使用本地主机发送邮件
String host = "localhost";
// 获取系统属性对象
Properties properties = System.getProperties();
// 设置邮件服务器
properties.setProperty("mail.smtp.host", host);
// 获取默认Session对象
Session mailSession = Session.getDefaultInstance(properties);
try {
// 创建一个默认的MimeMessage对象。
MimeMessage message = new MimeMessage(mailSession);
// 设置 From: 头部的header字段
message.setFrom(new InternetAddress(from));
// 设置 To: 头部的header字段
message.addRecipient(Message.RecipientType.TO,
new InternetAddress(to));
// 设置 Subject: header字段
message.setSubject("This is the Subject Line!");
// 现在设置的实际消息
message.setText("This is actual message");
// 发送消息
Transport.send(message);
System.out.println("Sent message successfully....");
} catch (MessagingException e) {
e.printStackTrace();
System.out.println("Error: unable to send message....");
}
}
}
以上,可正确发送邮件
需要注意的一点是,发件人地址应尽量与服务器ip(域名)保持一致,否则有些邮件系统会将邮件视作垃圾邮件处理