`

Java程序发送邮件的两种方法

阅读更多

 

 前一段时间我在博客中发表过Java接收解析邮件的程序,今天,我来总结两种发送邮件的程序。 

下是两种邮件发送方式。 
给出的例子是是发送HTML格式带附件的邮件。(普通文本格式的邮件基本上可以不关心,现在的邮件都是HTML格式的!) 
如果不要发送附件,只要发送单纯的HTML邮件。只要把附件部分去掉即可 

很简单,不解释,拿过去直接可以用,好,直接上代码: 

 

  

/** 
	 *用spring mail 发送邮件,依赖jar:spring.jar,activation.jar,mail.jar  
	 */ 	   
	 public static void sendFileMail() throws MessagingException {  
	         JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();  
	   
	         // 设定mail server  
	         senderImpl.setHost("smtp.126.com");  
	         senderImpl.setUsername("yuhan0");  
	         senderImpl.setPassword("******");  
	         // 建立HTML邮件消息  
	         MimeMessage mailMessage = senderImpl.createMimeMessage();  
	         // true表示开始附件模式  
	         MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage, true, "utf-8");  
	   
	         // 设置收件人,寄件人  
	         messageHelper.setTo("slimes@126.com");  
	         messageHelper.setFrom("yuhan0@126.com");  
	         messageHelper.setSubject("测试邮件!");  
	         // true 表示启动HTML格式的邮件  
	         messageHelper.setText("<html><head></head><body><h1>你好:附件!!</h1></body></html>", true);  
	   
	         FileSystemResource file1 = new FileSystemResource(new File("d:/logo.jpg"));  
	         FileSystemResource file2 = new FileSystemResource(new File("d:/读书.txt"));  
	         // 添加2个附件  
	         messageHelper.addAttachment("logo.jpg", file1);  
	           
	         try {  
	             //附件名有中文可能出现乱码  
	             messageHelper.addAttachment(MimeUtility.encodeWord("读书.txt"), file2);  
	         } catch (UnsupportedEncodingException e) {  
	             e.printStackTrace();  
	             throw new MessagingException();  
	         }  
	         // 发送邮件  
	         senderImpl.send(mailMessage);  
	         System.out.println("邮件发送成功.....");  
	   
	     }  

 

    

/** 
	 *用apache commons-email 发送邮件 
	 *依赖jar:commons-email.jar,activation.jar,mail.jar 
	 */  
	 public static void sendMutiMessage() {  
	   
	         MultiPartEmail email = new MultiPartEmail();  
	         String[] multiPaths = new String[] { "D:/1.jpg", "D:/2.txt" };  
	   
	         List<EmailAttachment> list = new ArrayList<EmailAttachment>();  
	         for (int j = 0; j < multiPaths.length; j++) {  
	             EmailAttachment attachment = new EmailAttachment();  
	             //判断当前这个文件路径是否在本地  如果是:setPath  否则  setURL;   
	             if (multiPaths[j].indexOf("http") == -1) {  
	                 attachment.setPath(multiPaths[j]);  
	             } else {  
	                 try {  
	                     attachment.setURL(new URL(multiPaths[j]));  
	                } catch (MalformedURLException e) {  
	                     e.printStackTrace();  
	               }  
	             }  
	             attachment.setDisposition(EmailAttachment.ATTACHMENT);  
	             attachment.setDescription("Picture of John");  
	             list.add(attachment);  
	         }  
	   
	         try {  
	             // 这里是发送服务器的名字:  
	             email.setHostName("smtp.126.com");  
	             // 编码集的设置  
	             email.setCharset("utf-8");  
	             // 收件人的邮箱                 
	             email.addTo("slimes@126.com");  
	             // 发送人的邮箱  
	             email.setFrom("yuhan0@126.com");  
	             // 如果需要认证信息的话,设置认证:用户名-密码。分别为发件人在邮件服务器上的注册名称和密码  
	             email.setAuthentication("yuhan0", "******");  
	             email.setSubject("这是一封测试邮件");  
	             // 要发送的信息  
	             email.setMsg("<b><a href=\"http://www.baidu.com\">邮件测试内容</a></b>");  
	   
	             for (int a = 0; a < list.size(); a++) //添加多个附件     
	             {  
	                 email.attach(list.get(a));  
	             }  
	             // 发送  
	             email.send();  
	         } catch (EmailException e) {  
	             e.printStackTrace();  
	         }  
	     }  

 

    

 

 

7
1
分享到:
评论

相关推荐

    基于Java mail的邮件收发系统的毕业设计,该技术提供了一套用于发送、接收电子邮件的API,可以方便地实现邮件的发送和接收

    本系统主要分为两个模块:邮件发送模块和邮件接收模块。其中,邮件发送模块主要负责发送邮件,并且能够实现多附件上传功能,方便用户发送多种类型的文件。邮件接收模块则负责接收邮件,并将邮件内容以列表的方式展示...

    java源码包---java 源码 大量 实例

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    电子邮件发送程序的设计与实现.doc

    电子邮件发送程序的发送方式有两种:第一种是本地计算机与用户所指定的发送邮件 服务器连接,然后通过发送邮件服务器将邮件传送到接收邮件的服务器,邮件中包含有 信件主题和内容等一系列信息;第二种是本地计算机...

    java源码包4

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    java源码包3

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    JAVA上百实例源码以及开源项目

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    JAVA上百实例源码以及开源项目源代码

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    java源码包2

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java编写的山寨QQ,多人聊天+用户在线 21个目标文件 摘要:JAVA源码,媒体网络,山寨QQ,Java聊天程序 Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构, 当用户发送第一次请求的时候,验证...

    java开源包11

    在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程...

    java开源包6

    在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程...

    java开源包9

    在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程...

    java开源包4

    在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程...

    java开源包101

    在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程...

    java开源包5

    在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程...

    java开源包8

    在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程...

    java开源包10

    在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程...

    java开源包3

    在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程...

    java开源包1

    在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程...

    小程序轮播图的两种后台方式(jsp)-jsp-后端

    小程序轮播图的两种后台方式(jsp)-jsp https://blog.csdn.net/dearmite/article/details/131966874 资源重整。修改页面。 本系列校训 用免费公开视频,卷飞培训班哈人!打死不报班,赚钱靠狠干! 只要自己有电脑,...

Global site tag (gtag.js) - Google Analytics