javaMail

SMTP:用来收发邮件 端口25

POP3用来接收邮件 端口110

IMAP: 收发邮件都可

发送邮件分类:

1. 发送纯文本邮件

2.发送html格式

3.发送有附件的邮件

1.发送纯文本邮件步骤:

a.创建session对象(用来连接邮件服务器)

b.创建邮件的消息(MimemeMessage)、收件人、发件人.......

c.创建邮件发送对象(Transport)连接到服务器,发送邮件

代码实例:

得到

//1. 创建session对象(用来连接到邮件服务器)
  Properties props = new Properties();  
  //设置属性值
  props.put("mail.smtp.auth", "true");//必须验证用户的用户名和密码  
  Session session = Session.getInstance(props);  
  //session.setDebug(true);
  
  try {
  
   Store store = session.getStore("pop3");
   
   //先连接
   store.connect("localhost", "test", "j7student");// 连接地址  用户名 密码
//store.connect("pop3.163.com", "test", "j7student"); //连接到腾讯邮箱p op3.qq.com

Folder fd = store.getFolder("INBOX");//得到邮箱
   fd.open(Folder.READ_ONLY);//只读
   
   Message ms[] = fd.getMessages();//得到所有邮件
   
   for(Message m : ms)

{
    
           System.out.println(m.getSubject()+":"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(m.getSentDate()));
    
    if(m.getContent() instanceof MimeMultipart)//判读邮件的类型是否是复杂的

{
      MimeMultipart mp = (MimeMultipart)m.getContent();
      for(int i=0;i<mp.getCount();i++)

{
       if(mp.getBodyPart(i).getContent() instanceof String)

{
        System.out.println("带有附件的内容:"+mp.getBodyPart(i).getContent());
       }
      }
    }
    else{
     System.out.println("普通内容"+m.getContent());
    }
    
    System.out.println("\n\n\n");
   }
   
   fd.close(false);
   store.close();
   
  } catch (Exception e) {
   
   e.printStackTrace();
   
  }


 * 发送纯文本的邮件
 *
 * 步骤:
 *
 * 1. 创建session对象(用来连接到邮件服务器)
 *
 * 2. 创建邮件的消息(MimeMessage(收件人,发件人,标题,内容,时间......))
 *
 * 3. 创建邮件的发送对象(Transport(连接到服务器,发送邮件))

//1. 创建session对象(用来连接到邮件服务器)
  Properties props = new Properties();  
  //设置属性值
  props.put("mail.smtp.auth", "true");//必须验证用户的用户名和密码  
  Session session = Session.getInstance(props);  
  session.setDebug(true);
  
  
  //2. 创建邮件的消息(MimeMessage(收件人,发件人,标题,内容,时间......))
  MimeMessage msg = new MimeMessage(session);
  
  try {
   
   msg.setFrom(new InternetAddress("[email protected]"));//发件人
   
   msg.setRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]"));//普通,抄送,秘密抄送
   
   msg.setSubject("我的第一封邮件哦!");//主题
   
   msg.setText("哈哈,我时邮件的内容哦!");//设置内容
   
   msg.setSentDate(new Date());//发送时间
   
   //3. 创建邮件的发送对象(Transport(连接到服务器,发送邮件))
   Transport tran = session.getTransport("smtp");
   
   tran.connect("localhost", "admin", "zuxiateacher");//先连接
   //tran.connect("smtp.qq.com", "admin", "zuxiateacher");//先连接
   //tran.connect("smtp.163.com", "admin", "zuxiateacher");//先连接
   
   tran.sendMessage(msg, msg.getAllRecipients());//发送邮件(邮件的内容,邮件中的收件人)
   
   tran.close();
   
   System.out.println("邮件发送成功!");
   
  } catch (Exception e) {
   e.printStackTrace();
  }

 发送HTML步骤:
 
  1. 创建session对象(用来连接到邮件服务器)
  
 2. 创建邮件的消息(MimeMessage(收件人,发件人,标题,内容,时间......))
  
  3. 创建邮件的发送对象(Transport(连接到服务器,发送邮件))

代码实例:

//1. 创建session对象(用来连接到邮件服务器)
  Properties props = new Properties();  
  //设置属性值
  props.put("mail.smtp.auth", "true");//必须验证用户的用户名和密码  
  Session session = Session.getInstance(props);  
  session.setDebug(true);
  
  
  //2. 创建邮件的消息(MimeMessage(收件人,发件人,标题,内容,时间......))
  MimeMessage msg = new MimeMessage(session);
  
  try {
   
   msg.setFrom(new InternetAddress("
[email protected]"));//发件人
   
   msg.setRecipient(Message.RecipientType.TO, new InternetAddress("
[email protected]"));//普通,抄送,秘密抄送TO 等....
   
   msg.setSubject("HTML标签邮件(3)!");//主题
   
   msg.setContent("<font color='red'><a href='http://www.baidu.com'>哈哈,我时邮件的内容哦!</a></font>", "text/html;charset=GBK");//设置内容
   
   msg.setSentDate(new Date());//发送时间
   
   //3. 创建邮件的发送对象(Transport(连接到服务器,发送邮件))
   Transport tran = session.getTransport("smtp");
   
   tran.connect("localhost", "admin", "zuxiateacher");//先连接
   //tran.connect("smtp.qq.com", "admin", "zuxiateacher");//先连接
   //tran.connect("smtp.163.com", "admin", "zuxiateacher");//先连接
   
   tran.sendMessage(msg, msg.getAllRecipients());//发送邮件(邮件的内容,邮件中的收件人)
   
   tran.close();
   
   System.out.println("邮件发送成功!");
   
  } catch (Exception e) {
   e.printStackTrace();
  }

 


 * 发送带有附件的邮件
 *
 * 步骤:
 *
 * 1. 创建session对象(用来连接到邮件服务器)
 *
 * 2. 创建邮件的消息(MimeMessage(收件人,发件人,标题,内容,时间......))
 *
 * 3. 创建邮件的发送对象(Transport(连接到服务器,发送邮件))

代码实例://1. 创建session对象(用来连接到邮件服务器)
  Properties props = new Properties();  
  //设置属性值
  props.put("mail.smtp.auth", "true");//必须验证用户的用户名和密码  
  Session session = Session.getInstance(props);  
  session.setDebug(true);
  
  //2. 创建邮件的消息(MimeMessage(收件人,发件人,标题,内容,时间......))
  MimeMessage msg = new MimeMessage(session);
  
  try {
   msg.setFrom(new InternetAddress("[email protected]"));//发件人
   
   msg.setRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]"));//普通,抄送,秘密抄送
   
   msg.setSubject("带有附件的邮件!");//主题
   
   msg.setSentDate(new Date());//发送时间
   
   
   //创建多组件对象
   Multipart mp=   new MimeMultipart(); 
   //设置文本内容    
   //创建一个BodyPart
   BodyPart mbp = new MimeBodyPart();
   mbp.setContent("用来发送附件的哦!", "text/html;charset=utf-8");
   mp.addBodyPart(mbp);
   
   //附件处理
   BodyPart mbp1 = new MimeBodyPart();
   FileDataSource fds = new FileDataSource(new File("e:/图片.rar"));//快速读取文件
   mbp1.setDataHandler(new DataHandler(fds));//设置数据的指针位置
   //设置附件名称(下载时候的附件名)
   mbp1.setFileName(MimeUtility.encodeText("图片.rar", "utf-8", null));
   mp.addBodyPart(mbp1);
   
   //将MiniMultipart设置为邮件内容
   msg.setContent(mp);//注意:一定要把多组件,添加在Message消息中;
   
   //3. 创建邮件的发送对象(Transport(连接到服务器,发送邮件))
   Transport tran = session.getTransport("smtp");
   
   tran.connect("localhost", "admin", "zuxiateacher");//先连接
   //tran.connect("smtp.qq.com", "admin", "zuxiateacher");//先连接
   //tran.connect("smtp.163.com", "admin", "zuxiateacher");//先连接
   
   tran.sendMessage(msg, msg.getAllRecipients());//发送邮件(邮件的内容,邮件中的收件人)
   
   tran.close();
   
   System.out.println("邮件发送成功!");
   
  } catch (Exception e) {
   e.printStackTrace();
  }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章