大家好!欢迎来到我的博客,希望能给您提供到帮助!!!
自从学习了Java开发,学习过程中会使用到很多别人写好的小工具,比如JDBC的连接,发送邮件,使用验证码等等,这些东西我们都可以自己整理好,用的时候直接使用就好了,因此,从今天开始,我将会整理出自己使用的一些Java开发中常用的小工具,和大家共同分享!
今天,我就先整理一下如何使用Java发送Email,并且会附上自己的完整的代码和注释,以便大家看的更清楚(可能不是最优化的代码,还望大牛能给出更好的建议)。
---------------------------------------------------------------------------------------------------------------------------------
Java发送邮件(一)
项目实现的功能:实现一对一的发送邮件,即收件人只能是一个人,不能添加附件(多收件人,抄送,暗送,添加附件将会在后续Java发送邮件(二)里面进行详解);
项目所需的jar包:mail.jar;
开发步骤:
1.新建一个Java Project,如:javaMail
2.导入项目中所需的jar包,即mail.jar
3.新建一个类:JavaMail
源代码如下:
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
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;
/**
* Java发送邮件一
* 功能:发送文本内容
* @author Administrator
*
*/
public class JavaMailDemo1 {
/**
* 1.创建Session对象
*/
public static Session createSession(String host,final String username,final String password){
Properties prop = new Properties();
prop.setProperty("mail.smtp.host", host); //指定主机名
prop.setProperty("mail.smtp.auth", "true"); //使用安全验证
prop.setProperty("mail.smtp.starttls.enable", "true"); //使用 STARTTLS安全连接
//创建验证器
Authenticator auth = new Authenticator(){
public PasswordAuthentication getPasswordAuthentication(){
return new PasswordAuthentication(username,password); //此处的username和password必须为final类型
}
};
return Session.getInstance(prop,auth);
}
/**
* 2.编写邮件
* @throws MessagingException
*/
public static MimeMessage writeEmail(Session session,String from,String to,String subject,String content) throws MessagingException{
//发件人地址
InternetAddress fromAddress = new InternetAddress(from);
//收件人地址
InternetAddress toAddress = new InternetAddress(to);
//创建MimeMessage对象
MimeMessage message = new MimeMessage(session);
//设置发件人
message.setFrom(fromAddress);
//设置收件人
message.addRecipient(RecipientType.TO, toAddress);
//设置主题
message.setSubject(subject);
//设置正文内容
message.setContent(content,"text/html;charset=utf-8");
return message;
}
/**
* 3.发送邮件
* @throws MessagingException
*/
public static void sendEmail(MimeMessage message) throws MessagingException{
Transport.send(message);
}
/**
* 测试
* @param args
*/
public static void main(String[] args) {
Session session = JavaMailDemo1.createSession("smtp.qq.com","用户名", "密码");
MimeMessage message;
try {
message = JavaMailDemo1.writeEmail(session, "发件人邮箱", "收件人邮箱", "Java发送邮件一", "你好,这是邮件正文!");
JavaMailDemo1.sendEmail(message);
System.out.println("邮件发送成功!");
} catch (MessagingException e) {
e.printStackTrace();
System.out.println("邮件发送失败!");
}
}
}
到此,一个简单的发送邮件的过程就完成了,希望对您能有所收获,请继续关注下一期:Java发送邮件二(复杂邮件的发送)!