使用javaMail发送邮件

使用javaMail发送邮件
1、邮件组织结构相关的API
MimeMessage类表示整封邮件。
MimeBodyPart类表示邮件的一个MIME消息。
MimeMultipart类表示一个由多个MIME消息组合成的组合MIME消息。
2、使用JavaMail API收发邮件
javaMail API按其功能划分通常可分为如下三大类:
创建和解析邮件内容的API :
Message类是创建和解析邮件的核心API,它的实例对象代表一封电子邮件。
发送邮件的API:
Transport类是发送邮件的核心API类,它的实例对象代表实现了某个邮件发送协议的邮件发送对象,例如SMTP协议。
接收邮件的API:
Store类是接收邮件的核心API类,它的实例对象代表实现了某个邮件接收协议的邮件接收对象,例如POP3协议。
(4)Session类
Session类用于定义整个应用程序所需的环境信息,以及收集客户端与邮件服务器建立网络连接的会话信息,如邮件服务器的主机名、端口号、采用的邮件发送和接收协议等。Session对象根据这些信息构建用于邮件收发的Transport和Store对象,以及为客户端创建Message对象时提供信息支持。
3、使用JavaMail发送一封简单的邮件:
创建包含邮件服务器的网络连接信息的Session对象。
创建代表邮件内容的Message对象。
创建Transport对象、连接服务器、发送Message、关闭连接。
public class SendMail {
/**
* 使用 [email protected][email protected] 发送一份邮件
* */
public static void main(String[] args) {
//1、创建邮件

//属性文件
Properties props = new Properties();
/**设置邮件的发送主机名,发送协议 ,是否验证*/
props.setProperty("mail.host", "smtp.sohu.com");
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.smtp.auth", "true");
//获取发送接收邮件环境的对象
Session session = Session.getInstance(props);
Message message = createMessage(session);
try {
//创建发送邮件的对象
Transport tsp = session.getTransport();
tsp.connect("redarmycsdn", "redarmycsdn");
tsp.sendMessage(message, message.getAllRecipients());
    tsp.close();
} catch (NoSuchProviderException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (AddressException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

//根据环境对象创建一份邮件
public static Message createMessage(Session session){
MimeMessage message = new MimeMessage(session);
try {
//2、设置邮件属性
message.setFrom(new InternetAddress("[email protected]"));
message.setRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]"));
    message.setSubject("网络发送成功否?");
   
    //3、创建邮件体
    MimeBodyPart text = new MimeBodyPart();
    text.setText("xxxxxxxxxxxxxx", "utf8");
   
    //4、设置描述关系
    MimeMultipart mm = new MimeMultipart();
    mm.addBodyPart(text);
   
    message.setContent(mm);
    message.saveChanges();
   
} catch(Exception e) {
e.printStackTrace();
}
return message;
}
}

你可能感兴趣的:(应用服务器,网络协议,网络应用)