zoukankan      html  css  js  c++  java
  • JavaWeb -- 邮件收发

    smtp协议:
    
    telnet smtp.qq.com 25
    
    ehlo kevin
    auth login
    eGlhbmdqaWU1NUBxcS5jb20=
    a2V2aW5feGlhbmc1NQ==
    
    mail from:<xiangjie55@qq.com>
    rcpt to:<626852095@qq.com>
    
    data
    
    from:<kevin_xiang55@qq.com>
    to:<626852095@qq.com>
    subject:test
    
    xxxxxxxxxxxxxxxxxxxxxxxxxxx
    .
    
    quit

     

    邮件生成:

    public class ImageMail {
    
    	/**
    	 * 带图片的邮件
    	 */
    	public static void main(String[] args) throws Exception {
    		
    		Session session = Session.getInstance(new Properties());
    		MimeMessage message = new MimeMessage(session);
    		
    		//设置邮件的基本信息
    		message.setFrom(new InternetAddress("xx@sina.com"));
    		message.setRecipient(Message.RecipientType.TO, new InternetAddress("xx@sina.com"));
    		message.setSubject("test");
    		
    		
    		//准备邮件数据				
    		//准备邮件正文数据
    		MimeBodyPart text = new MimeBodyPart();
    		text.setContent("xxxx<img src='cid:xxx.jpg'>xxxxxxxxx", "text/html");
    
    		
    		//准备图片数据
    		MimeBodyPart image = new MimeBodyPart();
    		DataHandler dh = new DataHandler(new FileDataSource("src\1.jpg"));
    		image.setDataHandler(dh);
    		image.setContentID("xxx.jpg");
    		
    
    		//描述数据关系
    		MimeMultipart mm = new MimeMultipart();
    		mm.addBodyPart(text);
    		mm.addBodyPart(image);
    		mm.setSubType("related");
    		
    		message.setContent(mm);
    		message.saveChanges();
    		
    		message.writeTo(new FileOutputStream("c:\1.eml"));
    	}
    }
    // 文字 附件 图片 混合右键
    public class MixedMail {
    
    	/**
    	 * 最复杂的邮件
    	 * @throws MessagingException 
    	 * @throws AddressException 
    	 */
    	public static void main(String[] args) throws Exception {
    		
    		Session session = Session.getInstance(new Properties());
    		MimeMessage message = new MimeMessage(session);
    		
    		//设置邮件的基本信息
    		message.setFrom(new InternetAddress("xx@sina.com"));
    		message.setRecipient(Message.RecipientType.TO, new InternetAddress("xx@sina.com"));
    		message.setSubject("测试");
    
    		//正文
    		MimeBodyPart text = new MimeBodyPart();
    		text.setContent("xxx这是女的xxxx<br/><img src='cid:aaa.jpg'>","text/html;charset=UTF-8");
    		
    		//图片
    		MimeBodyPart image = new MimeBodyPart();
    		image.setDataHandler(new DataHandler(new FileDataSource("src\3.jpg")));
    		image.setContentID("aaa.jpg");
    		
    		//附件1
    		MimeBodyPart attach = new MimeBodyPart();
    		DataHandler dh = new DataHandler(new FileDataSource("src\4.zip"));
    		attach.setDataHandler(dh);
    		attach.setFileName(dh.getName());
    		
    		//附件2
    		MimeBodyPart attach2 = new MimeBodyPart();
    		DataHandler dh2 = new DataHandler(new FileDataSource("src\波子.zip"));
    		attach2.setDataHandler(dh2);
    		attach2.setFileName(MimeUtility.encodeText(dh2.getName()));
    
    		//描述关系:正文和图片
    		MimeMultipart mp1 = new MimeMultipart();
    		mp1.addBodyPart(text);
    		mp1.addBodyPart(image);
    		mp1.setSubType("related");
    		
    		//描述关系:正文和附件
    		MimeMultipart mp2 = new MimeMultipart();
    		mp2.addBodyPart(attach);
    		mp2.addBodyPart(attach2);
    		
    		MimeBodyPart content = new MimeBodyPart();  //代表正文的bodypart
    		content.setContent(mp1);
    		mp2.addBodyPart(content);
    		mp2.setSubType("mixed");
    		
    		message.setContent(mp2);
    		message.saveChanges();
    		
    		message.writeTo(new FileOutputStream("c:\3.eml"));
    	
    	}
    }
    

    邮件发送:

    public class Sendmail {
    
    	/**
    	 * @param args
    	 * @throws Exception 
    	 */
    	public static void main(String[] args) throws Exception {
    		
    		Properties prop = new Properties();
    		prop.setProperty("mail.host", "smtp.163.com");
    		prop.setProperty("mail.transport.protocol", "smtp");
    		prop.setProperty("mail.smtp.auth", "true");
    		
    		//创建session
    		Session session = Session.getInstance(prop);
    		session.setDebug(true);
    		
    		//通过session得到transport对象
    		Transport ts = session.getTransport();
    		
    		//连上邮件服务器
    		ts.connect("smtp.163.com", "xiangjie012455", "012455");
    		
    		
    		//发送邮件
    		Message message = makeMessage(session);
    		ts.sendMessage(message, message.getAllRecipients());
    		ts.close();
    	}
    	
    	
    	public static Message makeMessage(Session session) throws Exception, MessagingException{
    		
    		MimeMessage message = new MimeMessage(session);
    		message.setFrom(new InternetAddress("xiangjie012455@163.com"));
    		message.setRecipient(Message.RecipientType.TO, new InternetAddress("kevin_xiang55@163.com"));
    		message.setSubject("test");
    		message.setContent("aaa", "text/html");
    		
    		return message;
    	}
    
    }



     

  • 相关阅读:
    QR code 乱谈(一)
    用JAVA实现数字水印(可见)
    ctf总结
    Unix/Linux常用命令
    C语言概述
    C语言发发展历史
    为什么要学习C语言
    计算机应用领域
    计算机发展趋势
    如何学习计算机
  • 原文地址:https://www.cnblogs.com/xj626852095/p/3648152.html
Copyright © 2011-2022 走看看