spring mail 发送邮件
来源:互联网 发布:奥飞数据与奥飞娱乐 编辑:程序博客网 时间:2024/05/16 02:19
最近在项目中用到了发送邮件的功能(用户注册邮箱激活、用户密码重置邮箱获取验证码等等),所以写了一下java的邮件发送。
java mail
java mail是最早出现的java邮件发送,以下是它的使用方式(引入jar包:activation.jar、mail.jar)
package com.lingjuli.servlet; import java.util.Date; import java.util.Properties; import javax.mail.Authenticator; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.Multipart; 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 SendMail { private static String username = "luo.xxx@163.com"; private static String password = "xxx"; private static String smtpServer = "smtp.163.com";//邮件协议 private static String fromMailAddress = "luo.xxx@163.com"; private static String toMailAddress = "xxx@sina.com"; public static void main(String[] args) throws Exception { Properties props = new Properties(); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.host", smtpServer); // 获得邮件会话对象 Session session = Session.getDefaultInstance(props, new SmtpAuthenticator(username, password)); /** *************************************************** */ // 创建MIME邮件对象 MimeMessage mimeMessage = new MimeMessage(session); mimeMessage.setFrom(new InternetAddress(fromMailAddress));// 发件人 mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress( toMailAddress));// 收件人 mimeMessage.setSubject("主题"); mimeMessage.setSentDate(new Date());// 发送日期 BodyPart mdp = new MimeBodyPart();// 新建一个存放信件内容的BodyPart对象 mdp.setContent("测试java邮件发送", "text/html;charset= GB2312");// 设置发送邮件内容为HTML类型,并为中文编码 Multipart mm = new MimeMultipart(); mm.addBodyPart(mdp); mimeMessage.setContent(mm); mimeMessage.saveChanges(); Transport.send(mimeMessage);// 发送邮件 } } /** * Smtp认证 */ class SmtpAuthenticator extends Authenticator { String username = null; String password = null; // SMTP身份验证 public SmtpAuthenticator(String username, String password) { this.username = username; this.password = password; } public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(this.username, this.password); } }
spring mail
通过spring对java mail的上层封装,以下为使用方式
package com.zwx.utils; import java.io.File; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.mail.javamail.MimeMessageHelper; public class MailSender { /* private static String username = "luo.xxx@163.com"; private static String password = "xxx"; private static String smtpServer = "smtp.163.com"; private static String fromMailAddress = "luo.xxx@163.com"; private static String toMailAddress = "xxx@sina.com"; */ private static PropertiesLoader propertiesLoader = new PropertiesLoader("bdsc-web.properties");//读取配置文件 public static void mailSimple(String toMailSAddress,String subject,String content) { // 发送器 JavaMailSenderImpl mailSender= new JavaMailSenderImpl(); // 建立邮件消息,发送简单邮件和html邮件的区别 MimeMessage mailMessage = mailSender.createMimeMessage(); // 为防止乱码,添加编码集设置 MimeMessageHelper messageHelper = null; try { //发送附件 则 参数为 multipart 为 ture messageHelper = new MimeMessageHelper(mailMessage,true,"UTF-8"); } catch (MessagingException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } //设定mail server mailSender.setHost(propertiesLoader.getProperty("mail.smtp.host")); mailSender.setPort(propertiesLoader.getInteger("mail.smtp.port")); mailSender.setUsername(propertiesLoader.getProperty("mail.smtp.username")); mailSender.setPassword(propertiesLoader.getProperty("mail.smtp.password")); //建立邮件消息 //设置收件人、寄件人 try { messageHelper.setTo(toMailSAddress); messageHelper.setFrom(propertiesLoader.getProperty("mail.smtp.username")); messageHelper.setSubject(subject); messageHelper.setText(content,true); //附件内容 messageHelper.addAttachment("附件1", new File("h:/test/abc.pdf")); messageHelper.addAttachment("附件2", new File("h:/test/qwe.gif")); } catch (MessagingException e) { // TODO Auto-generated catch block e.printStackTrace(); } //发送邮件 mailSender.send(mailMessage); System.out.println("邮件发送成功!"); } public static void main(String[] args) { try { MailSender.mailSimple("xxx@sina.com","qwe","qwe"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
bdsc-web.properties
- #spring mail
- mail.smtp.username = luo.xxx@163.com
- mail.smtp.password = xxx
- mail.smtp.host = smtp.163.com
- mail.smtp.auth = true
- mail.smtp.timeout = 1000
0 0
- Spring Mail邮件发送
- spring mail发送邮件
- spring mail 发送邮件
- Spring mail 发送邮件
- spring mail 发送邮件
- Spring mail 发送邮件
- Spring mail 发送邮件
- Spring Mail实现发送邮件
- 使用Spring Mail发送邮件
- Spring mail实现邮件发送
- spring mail简单邮件发送
- spring mail发送TLS邮件
- Spring的Mail邮件发送
- spring-boot mail 邮件发送
- spring+mail+maven(spring 发送邮件)
- 通过Spring Mail Api发送邮件
- 通过Spring Mail Api发送邮件
- 通过Spring Mail Api发送邮件
- Android 判断网络类型 wifi,2G,3G,4G
- java中的闭包
- 1/7 = 0.142857142... 是个无限循环小数。 任何有理数都可以表示为无限循环小数的形式。 本题目要求即是:给出一个数字的循环小数表示法。 例如: 输入: 1,5 则输出: 0.2 输入
- 事务和锁
- 链表C++实现
- spring mail 发送邮件
- Hadoop环境的配置
- java.lang.IllegalStateException异常产生的原因及解决办法
- RPC中Hessian请求转发
- 知识积累:.length和.length()
- ListView中的item中的Onclick事件的优化
- 强悍的 Linux —— 强悍的 ls
- 标识符和关键字
- Delphi表格控件DBGridEh全属性设置详解 最全的属性设置说明