使用Java应用程序发送 E-mail 十分简单,但需要在设备上安装 JavaMail API 和Java Activation Framework (JAF) 。另外需要把 mail.jar 和 activation.jar包导入项目,可以从 Java 网站下载最新版本的 JavaMail,打开网页右侧有个 Downloads 链接,点击它下载。还有最新版本的 JAF(版本 1.1.1)。
下面为Java代码实例
实例1 简单QQ邮件发送
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
//简单QQ邮件发送(包含身份验证)
public class EmailTest1 {
public EmailTest1(){
String to ="@qq.com"; //收件人邮箱
String from ="@qq.com"; //发送人邮箱
String host ="smtp.qq.com"; //发送邮件的主机
Properties pro = System.getProperties(); //获取系统属性
pro.setProperty("mail.smtp.host",host); //设置邮件服务器
pro.put("mail.smtp.host", host); //绑定属性值包括邮件服务器,发送人邮箱以及授权码
pro.put("mail.smtp.auth","true"); //设置为需要身份验证
pro.put("userName","发送人邮箱");
pro.put("password","授权码");
Session session = Session.getDefaultInstance(pro,new Authenticator(){
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("发送人邮箱","授权码");
//发送人邮箱,授权码
}});
try{
MimeMessage message =new MimeMessage(session);
message.setFrom(new InternetAddress(from)); //设置发送人信息
message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));//添加收件人信息
//群发邮件
//void addRecipients(Message.RecipientType type,
// Address[] addresses)
//throws MessagingException
message.setSubject("Java邮件发送测试1"); //设置邮件标题
message.setText("简单邮件发送"); //添加邮件内容
Transport.send(message); //发送邮件
System.out.println("发送成功");
}catch (MessagingException m){
m.printStackTrace();
}
}
}
获取授权码按照以下进行操作
简单QQ邮件发送测试结果如下
注意:Message.RecipientType type中type:要被设置为 TO, CC 或者 BCC,这里 CC 代表抄送、BCC 代表秘密抄送。
实例2 简单QQ邮件发送(HTML格式)
只需将在实例1的基础上,将其代码行中的message.setText("简单邮件发送");替换为message.setContent("<h1>This is actual message</h1>","text/html");即可。
简单QQ邮件发送(HTML格式)测试结果如下
实例3 简单QQ邮件发送(带附件)
在实例1的基础上进行修改即可,将代码行
message.setSubject("Java邮件发送测试1");//设置邮件标题
message.setText("简单邮件发送");//添加邮件内容
Transport.send(message);//发送邮件
替换为
message.setSubject("Java邮件发送测试3"); //设置邮件标题
BodyPart body =new MimeBodyPart(); //创建消息部分
body.setText("这是消息内容:"); //文本消息
Multipart mul =new MimeMultipart(); //创建多重消息
mul.addBodyPart(body); //设置文本信息
body =new MimeBodyPart(); //添加附件
String filename ="C:/Users/My/IdeaProjects/Java_Email/src/mail.txt";
FileDataSource source =new FileDataSource(filename);
body.setDataHandler(new DataHandler(source));
body.setFileName(filename);
mul.addBodyPart(body);
message.setContent(mul); //发送完整信息
简单QQ邮件发送(带附件)测试结果如下