zoukankan      html  css  js  c++  java
  • java带图片的邮件发送方法实现

    package sendEmail;
    
    import java.util.Properties;
    
    import javax.activation.DataHandler;
    import javax.activation.FileDataSource;
    import javax.mail.Authenticator;
    import javax.mail.Message;
    import javax.mail.PasswordAuthentication;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeBodyPart;
    import javax.mail.internet.MimeMessage;
    import javax.mail.internet.MimeMultipart;
    
    public class AttchImgMail {
    	// JavaMail须要Properties来创建一个session对象。它将寻找字符串"mail.smtp.host",属性值就是发送邮件的主机.
    	public static void main(String[] args) throws Exception {
    		Properties properties = new Properties();
    		// properties.put("mail.smtp.host", "mailcas.chinapnr.com");// 设置smtp主机
    		properties.put("mail.smtp.host", "smtp.163.com");// 设置smtp主机
    		properties.put("mail.smtp.auth", "true");// 使用smtp身份验证
    		/*
    		 * 在 JavaMail 中,能够通过 extends Authenticator 抽象类,在子类中覆盖父类中的
    		 * getPasswordAuthentication() 方法。就能够实现以不同的方式来进行登录邮箱时的用户身份认证。JavaMail
    		 * 中的这样的设计是使用了策略模式(Strategy
    		 */
    		MimeMessage message = new MimeMessage(Session.getInstance(properties,
    				new Authenticator() {
    					public PasswordAuthentication getPasswordAuthentication() {
    						return new PasswordAuthentication(//设置发送帐号password
    								"帐号", "password");
    					}
    				}));
    		// 设置邮件的属性
    		// 设置邮件的发件人
    		message.setFrom(new InternetAddress("发件人"));
    		// 设置邮件的收件人 cc表示抄送 bcc 表示暗送
    		message.setRecipient(Message.RecipientType.TO, new InternetAddress(
    				"收件人"));
    		// 设置邮件的主题
    		message.setSubject("系统自己主动发送邮件");
    		// 创建邮件的正文
    		MimeBodyPart text = new MimeBodyPart();
    		// setContent(“邮件的正文内容”,”设置邮件内容的编码方式”)
    		text.setContent("此邮件为系统自己主动发送<img src='cid:a'><img src='cid:b'>",
    				"text/html;charset=gb2312");
    
    		// 点到点的发送
    		// 一对多发送仅仅要改一个地方例如以下:
    		
    		// // 构建一个群发地址数组
    		// InternetAddress[] adr=new InternetAddress[toMore.length];
    		// for(int i=0;i<toMore.length;i++){ adr[i]=new
    		// InternetAddress(toMore[i]); }
    		// // Message的setRecipients方法支持群发。。注意:setRecipients方法是复数和点 到点不一样
    		// message.setRecipients(Message.RecipientType.TO,adr);
    		 
    
    		// 创建图片
    		MimeBodyPart img = new MimeBodyPart();
    		/*
    		 * JavaMail API不限制信息仅仅为文本,不论什么形式的信息都可能作茧自缚MimeMessage的一部分.
    		 * 除了文本信息,作为文件附件包括在电子邮件信息的一部分是非常普遍的. JavaMail
    		 * API通过使用DataHandler对象,提供一个同意我们包括非文本BodyPart对象的简便方法.
    		 */
    		DataHandler dh = new DataHandler(new FileDataSource("src//a.jpg"));//图片路径
    		img.setDataHandler(dh);
    		// 创建图片的一个表示用于显示在邮件中显示
    		img.setContentID("a");
    
    		MimeBodyPart img2 = new MimeBodyPart();
    		DataHandler dh2 = new DataHandler(new FileDataSource("src//b.jpg"));//第二张图片路径
    		img2.setDataHandler(dh2);
    		img2.setContentID("b");
    		// 创建附件
    		// MimeBodyPart attch = new MimeBodyPart();
    		// DataHandler dh1 = new DataHandler(new FileDataSource("src//b.jpg"));
    		// attch.setDataHandler(dh1);
    		// String filename1 = dh1.getName();
    		// MimeUtility 是一个工具类,encodeText()用于处理附件字,防止中文乱码问题
    		// attch.setFileName(MimeUtility.encodeText(filename1));
    		// 关系 正文和图片的
    		MimeMultipart mm = new MimeMultipart();
    		mm.addBodyPart(text);
    		mm.addBodyPart(img);
    		mm.setSubType("related");// 设置正文与图片之间的关系
    		// 图班与正文的 body
    		MimeBodyPart all = new MimeBodyPart();
    		all.setContent(mm);
    		// 附件与正文(text 和 img)的关系
    		MimeMultipart mm2 = new MimeMultipart();
    		mm2.addBodyPart(all);
    		mm2.addBodyPart(img2);
    		mm2.setSubType("mixed");// 设置正文与附件之间的关系
    
    		message.setContent(mm2);
    		message.saveChanges(); // 保存改动
    
    		Transport.send(message);// 发送邮件
    		System.out.println("邮件发送成功");
    
    	}
    }

    Java发送带图片的邮件,代码为发生2张图片的邮件关联方式,凝视中有发送带附件、带多人发送解析的代码。能够自行调整

  • 相关阅读:
    Pytorch 四种边界填充方式(Padding)
    数据预处理 —— padding数据
    Python PIL彩色图像转灰度图像
    Python PIL读取与保存图片
    Python-OpenCV 彩色图像转灰度图像
    Python-OpenCV读取与保存图片
    Python 矩阵旋转180度
    Pytorch 扩展Tensor维度、压缩Tensor维度
    基于SSM的健身房管理系统
    大学生创新创业项目-智取乐食
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5353732.html
Copyright © 2011-2022 走看看