Spring邮件抽象层的主要包为org.springframework.mail。它包括了发送电子邮件的主要接口MailSender,和值对象SimpleMailMessage,它封装了简单邮件的属性如from, to,cc, subject,text。
包里还包含一棵以MailException为根的checked Exception继承树,它们提供了对底层邮件系统异常的高级别抽象。 要获得关于邮件异常层次的更丰富的信息,请参考Javadocs。
为了使用JavaMail中的一些特色, 比如MIME类型的信件, Spring提供了MailSender的一个子接口, 即org.springframework.mail.javamail.JavaMailSender。
Spring还提供了一个回调接口org.springframework.mail.javamail.MimeMessagePreparator, 用于准备JavaMail的MIME信件。
1.发送简单的文本邮件
001 | package net.xftzr.mail; |
002 | import java.util.Properties; |
005 | import org.springframework.mail.SimpleMailMessage; |
006 | import org.springframework.mail.javamail.JavaMailSenderImpl; |
015 | public class SingleMailSend { |
016 | public static void main(String args[]){ |
017 | JavaMailSenderImpl senderImpl = new JavaMailSenderImpl(); |
019 | senderImpl.setHost( " smtp.163.com " ); |
022 | SimpleMailMessage mailMessage = new SimpleMailMessage(); |
026 | mailMessage.setTo( " toEmail@sina.com " ); |
027 | mailMessage.setFrom( " userName@163.com " ); |
028 | mailMessage.setSubject( " 测试简单文本邮件发送! " ); |
029 | mailMessage.setText( " 测试我的简单邮件发送机制!! " ); |
031 | senderImpl.setUsername( " userName " ) ; |
032 | senderImpl.setPassword( " password " ) ; |
034 | Properties prop = new Properties() ; |
035 | prop.put( " mail.smtp.auth " , " true " ) ; |
036 | prop.put( " mail.smtp.timeout " , " 25000 " ) ; |
037 | senderImpl.setJavaMailProperties(prop); |
039 | senderImpl.send(mailMessage); |
041 | System.out.println( " 邮件发送成功.. " ); |
049 | org.springframework.mail.javamail.MimeMessageHelper是处理JavaMail邮件常用的顺手组件之一。它可以让你摆脱繁复的javax.mail.internetAPI类 |
050 | package net.xftzr.mail; |
055 | import java.util.Properties; |
058 | import javax.mail.internet.MimeMessage; |
059 | import org.springframework.mail.javamail.JavaMailSenderImpl; |
060 | import org.springframework.mail.javamail.MimeMessageHelper; |
066 | public class HTMLMailDemo { |
070 | public static void main(String[] args) throws Exception{ |
071 | JavaMailSenderImpl senderImpl = new JavaMailSenderImpl(); |
074 | senderImpl.setHost( "smtp.163.com" ); |
077 | MimeMessage mailMessage = senderImpl.createMimeMessage(); |
078 | MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage); |
081 | messageHelper.setTo( "Mailto@sina.com" ); |
082 | messageHelper.setFrom( "username@163.com" ); |
083 | messageHelper.setSubject( "测试HTML邮件!" ); |
085 | messageHelper.setText( "<html><head></head><body><h1>hello!!spring html Mail</h1></body></html>" , true ); |
087 | senderImpl.setUsername( "username" ) ; |
088 | senderImpl.setPassword( "password" ) ; |
089 | Properties prop = new Properties() ; |
090 | prop.put( "mail.smtp.auth" , "true" ) ; |
091 | prop.put( "mail.smtp.timeout" , "25000" ) ; |
092 | senderImpl.setJavaMailProperties(prop); |
094 | senderImpl.send(mailMessage); |
096 | System.out.println( "邮件发送成功.." ); |
106 | Email允许添加附件,也允许在multipart信件中内嵌资源。内嵌资源可能是你在信件中希望使用的图像,或者样式表,但是又不想把它们作为附件。 |
107 | package net.xftzr.mail; |
111 | import java.util.Properties; |
114 | import javax.mail.internet.MimeMessage; |
115 | import org.springframework.core.io.FileSystemResource; |
116 | import org.springframework.mail.javamail.JavaMailSenderImpl; |
117 | import org.springframework.mail.javamail.MimeMessageHelper; |
123 | public class AttachedImageMail { |
124 | public static void main(String[] args) throws Exception{ |
125 | JavaMailSenderImpl senderImpl = new JavaMailSenderImpl(); |
128 | senderImpl.setHost( "smtp.163.com" ); |
132 | MimeMessage mailMessage = senderImpl.createMimeMessage(); |
135 | MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage, true ); |
138 | messageHelper.setTo( "toMail@sina.com" ); |
139 | messageHelper.setFrom( "username@163.com" ); |
140 | messageHelper.setSubject( "测试邮件中嵌套图片!!" ); |
142 | messageHelper.setText( "<html><head></head><body><h1>hello!!spring image html mail</h1>" + |
143 | "<img src=\"cid:aaa\"/></body></html>" , true ); |
145 | FileSystemResource img = new FileSystemResource( new File( "g:/123.jpg" )); |
147 | messageHelper.addInline( "aaa" ,img); |
149 | senderImpl.setUsername( "username" ) ; |
150 | senderImpl.setPassword( "password" ) ; |
151 | Properties prop = new Properties() ; |
152 | prop.put( "mail.smtp.auth" , "true" ) ; |
153 | prop.put( "mail.smtp.timeout" , "25000" ) ; |
154 | senderImpl.setJavaMailProperties(prop); |
157 | senderImpl.send(mailMessage); |
159 | System.out.println( "邮件发送成功.." ); |
167 | package net.xftzr.mail; |
175 | import java.util.Properties; |
178 | import javax.mail.internet.MimeMessage; |
179 | import org.springframework.core.io.FileSystemResource; |
180 | import org.springframework.mail.javamail.JavaMailSenderImpl; |
181 | import org.springframework.mail .javamail.MimeMessageHelper; |
182 | public class AttachedFileMail { |
187 | public static void main(String[] args) throws Exception{ |
188 | JavaMailSenderImpl senderImpl = new JavaMailSenderImpl(); |
191 | senderImpl.setHost( "smtp.163.com" ); |
193 | MimeMessage mailMessage = senderImpl.createMimeMessage(); |
196 | MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage, true , "utf-8" ); |
199 | messageHelper.setTo( "toMail@sina.com" ); |
200 | messageHelper.setFrom( "username@163.com" ); |
201 | messageHelper.setSubject( "测试邮件中上传附件!!" ); |
203 | messageHelper.setText( "<html><head></head><body><h1>你好:附件中有学习资料!</h1></body></html>" , true ); |
205 | FileSystemResource file = new FileSystemResource( new File( "g:/test.rar" )); |
207 | messageHelper.addAttachment( "test.rar" ,file); |
209 | senderImpl.setUsername( "username" ) ; |
210 | senderImpl.setPassword( "password" ) ; |
211 | Properties prop = new Properties() ; |
212 | prop.put( "mail.smtp.auth" , "true" ) ; |
213 | prop.put( "mail.smtp.timeout" , "25000" ) ; |
214 | senderImpl.setJavaMailProperties(prop); |
216 | senderImpl.send(mailMessage); |
218 | System.out.println( "邮件发送成功.." ); |
224 | public static void main(String[] args) throws Exception{ |
225 | JavaMailSenderImpl senderImpl = new JavaMailSenderImpl(); |
228 | senderImpl.setHost( "smtp.163.com" ); |
230 | MimeMessage mailMessage = senderImpl.createMimeMessage(); |
233 | MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage, true , "utf-8" ); |
236 | messageHelper.setTo( "toMail@sina.com" ); |
237 | messageHelper.setFrom( "username@163.com" ); |
238 | messageHelper.setSubject( "测试邮件中上传附件!!" ); |
240 | messageHelper.setText( "<html><head></head><body><h1>你好:附件中有学习资料!</h1></body></html>" , true ); |
242 | FileSystemResource file = new FileSystemResource( new File( "g:/test.rar" )); |
244 | messageHelper.addAttachment( "test.rar" ,file); |
246 | senderImpl.setUsername( "username" ) ; |
247 | senderImpl.setPassword( "password" ) ; |
248 | Properties prop = new Properties() ; |
249 | prop.put( "mail.smtp.auth" , "true" ) ; |
250 | prop.put( "mail.smtp.timeout" , "25000" ) ; |
251 | senderImpl.setJavaMailProperties(prop); |
253 | senderImpl.send(mailMessage); |
255 | System.out.println( "邮件发送成功.." ); |