JavaMail 发送简单邮件
JavaMail 要发送一个简单的电子邮件的步骤依次是:
- 获取一个Session;
- 创建一个默认 MimeMessage 对象,并设置发件人,收件人,主题(From, To, Subject)在消息中;
- 设置使用使用setText(实际的消息)发送信息 ;
- 发送使用传输对象的消息;
使用163 smtp 邮箱服务器发送,运行程序前,确保163邮箱开启smtp服务;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;
public class SendEmail{
public static void main(String[] args){
//邮箱服务器参数
String to = "yulinying_1994@outlook.com"; //收件地址
String from = "helloworld_assad@163.com"; //发送地址
String username = "helloworld_assad@163.com"; //邮箱验证用户名,一般第三方的POP,smtp服务,用户名为发送邮箱地址
String password = "*************"; //邮箱验证授权码
String host = "smtp.163.com"; //发送邮箱服务器,如果是本机配置为邮箱服务器,使用"localhost"参数
//设置邮件服务器参数、服务器端口等参数
Properties props = new Properties();
props.put("mail.smtp.host",host);
props.put("mail.smtp.auth", "true");
props.put("mail.transport.protocol", "smtp");
//props.put("mail.smtp.port","25"); 使用第三方的smtp服务器可以不用设置端口
//设置Session对象,同时配置验证方法
Session session = Session.getInstance(props,new javax.mail.Authenticator(){
protected PasswordAuthentication getPasswordAuthentication(){
return new PasswordAuthentication(username,password);
}
});
try{
//创建Message对象,并设置相关参数
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to));
//设置发送信息主题.信息正文
message.setSubject("Hello");
message.setText("Hello,This is a email using JavaMail API ,jsut test :)");
//发送信息
Transport.send(message);
System.out.println("Email Sent!");
}catch(MessagingException e){
e.printStackTrace();
}
}
}
添加发送者昵称:
try{
//创建Message对象,并设置相关参数
Message message = new MimeMessage(session);
//设置发送者中文昵称
String nick = "assad";
nick = nick=javax.mail.internet.MimeUtility.encodeText("assad");
msg.setFrom(new InternetAddress(nick+" <"+from+">"));
message.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to));
//设置发送信息主题.信息正文
message.setSubject("Hello");
message.setText("Hello,This is a email using JavaMail API ,jsut test :)");
//发送信息
Transport.send(message);
System.out.println("Email Sent!");
}catch(MessagingException e){
e.printStackTrace();
}