使用JavaMail API收发邮件

使用JavaMail API收发邮件

JavaMail API按其功能划分通常可分为如下三大类:
创建和解析邮件内容的API :Message类是创建和解析邮件的核心API,它的实例对象代表一封电子邮件。
发送邮件的API :Transport类是发送邮件的核心API类,它的实例对象代表实现了某个邮件发送协议的邮件发送对象,例如SMTP协议。
接收邮件的API :Store类是接收邮件的核心API类,它的实例对象代表实现了某个邮件接收协议的邮件接收对象,例如POP3协议。
Session类
Session类用于定义整个应用程序所需的环境信息,以及收集客户端与邮件服务器建立网络连接的会话信息,如邮件服务器的主机名、端口号、采用的邮件发送和接收协议等。Session对象根据这些信息构建用于邮件收发的Transport和Store对象,以及为客户端创建Message对象时提供信息支持。

邮件发送程序
使用JavaMail发送一封简单的邮件:
1、创建包含邮件服务器的网络连接信息的Session对象。
2、创建代表邮件内容的Message对象。
3、创建Transport对象、连接服务器、发送Message、关闭连接。
下面以从csdn@sohu.com  给 1324117@sina.com 发一封带有图片的邮件为例,代码如下:
public class SeendMail {
 public static void main(String[] args) {
  // 设置属性
  Properties props = new Properties();
  props.setProperty("mail.host", "smtp.sohu.com");
  props.setProperty("mail.transport.protocol","smtp");
  props.setProperty("mail.smtp.auth", "ture");
  
  Session session=Session.getInstance(props);
  Message message=CreatMessage(session);
  
  try {
   Transport trs=session.getTransport();
   trs.connect("csdn", "csdn");
   trs.sendMessage(message,message.getAllRecipients());
   trs.close();
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
 //创建邮件
 public static Message CreatMessage(Session session){
  MimeMessage message=new MimeMessage(session);
  try {
   // 设置属性
   message.setFrom(new InternetAddress("csdn@sohu.com"));
   message.setRecipient(Message.RecipientType.TO, new InternetAddress("1324117@sina.com "));
   message.setSubject("kxl");
   //创建邮件体
   MimeBodyPart text=new MimeBodyPart();
   text.setContent("这有好多图片<br/><img src='cid:xx.jpg'><br/><img src='cid:yy.jpg'><br/>选一张吧", "text/html;charset=utf-8");
   //设置图片
   MimeBodyPart image=new MimeBodyPart();
   image.setDataHandler(new DataHandler(new FileDataSource("src//f.jpg")));
   image.setContentID("xx.jpg");
   
   MimeBodyPart image1=new MimeBodyPart();
   image1.setDataHandler(new DataHandler(new FileDataSource("src//x.jpg")));
   image1.setContentID("yy.jpg");
   //描述关系
   //图片与正文的描述关系
   MimeMultipart mm = new MimeMultipart();
   mm.addBodyPart(text);
   mm.addBodyPart(image);
      mm.addBodyPart(image1);
     
      mm.setSubType("related");
         message.setContent(mm);
   message.saveChanges();
   
  } catch (Exception e) {
   e.printStackTrace();
  }
  return message;
 }
}

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值