1.使用Spring发送带附件的电子邮件

<?xml version="1.0" encoding="UTF-8"?>
<beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"><bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"><property name="host" value="192.168.8.71"></property><!-- 服务器 --><property name="port" value="25"></property><!-- 端口 --><property name="username" value="wxk"></property><!-- 用户名 --><property name="password" value="wxk"></property><!-- 密码 --><property name="protocol" value="smtp" ></property><!-- 协议 --><property name="defaultEncoding" value="utf-8"></property><!-- 默认编码 --><property name="javaMailProperties"><props><!-- 设置SMTP服务器需要用户验证  --><prop key="mail.smtp.auth">true</prop></props></property></bean><bean id="mailWithAttachment" class="cn.bdqn.MailWithAttachment"><property name="mailSender" ref="mailSender"></property></bean></beans>

大配置

log4j.rootLogger=info,console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d %p [%c] - %m%n

log4j.properties

package cn.bdqn;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class MailTest {public static void main(String[] args){ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");try{MailWithAttachment mailWithAttach = (MailWithAttachment)context.getBean("mailWithAttachment");mailWithAttach.send();}catch(Exception e){System.out.print(e.toString());}}
}    

测试类

package cn.bdqn;import java.io.IOException;import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeUtility;import org.springframework.core.io.ClassPathResource;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;public class MailWithAttachment {private JavaMailSender mailSender; //必须使用 JavaMailSenderpublic void setMailSender(JavaMailSender mailSender) {this.mailSender = mailSender;}public void send() throws MessagingException,IOException{MimeMessage mimeMessage = mailSender.createMimeMessage();MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true, "UTF-8");helper.setFrom("wxk@mail.com");helper.setTo("wj@mail.com");helper.setSubject("等待是种执着");helper.setText("青鸟的岁月似流年,又有多少青春如风逝去,不要让这座城市只留下无尽的回忆,却没有留下我们一起走过的青春," +"青春不是生命的一瞬,而是一种自然的心境!");//添加附件1ClassPathResource file1 = new ClassPathResource("/cn/bdqn/attachfiles/QQ图片20161214191111.jpg");helper.addAttachment(file1.getFilename(), file1.getFile());//添加附件2:附件的文件名为中文时,需要对文件名进行编码转换,解决乱码问题ClassPathResource file2 = new ClassPathResource("/cn/bdqn/attachfiles/附件测试文件.doc");helper.addAttachment(MimeUtility.encodeWord(file2.getFilename()),file2.getFile());mailSender.send(mimeMessage);}
}

MailWithAttachment

上传邮件成功

2.使用Spring发送简单邮件

大配置和log4j还要架包同上省略

package cn.bdqn;import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;public class Mail {private MailSender mailSender;public void setMailSender(MailSender mailSender) {this.mailSender = mailSender;}public void send(){SimpleMailMessage message = new SimpleMailMessage();message.setFrom("wxk@mail.com");message.setTo("wj@mail.com");message.setSubject("会议通知fsb发布");message.setText("jerry你好!请于明天下午16:00 准时到B01会议室召开技术讨论会。");mailSender.send(message);}
}

Mail

package cn.bdqn;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class MailTest {public static void main(String[] args){ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");/*测试简单邮件*/Mail mail = (Mail)context.getBean("mail");mail.send();}
}    

MailTest

3.使用Spring邮件服务和FreeMarker模板技术发送邮件

大配置和log4j还要架包同上省略

package cn.bdqn.pojo;public class Mail {private String to;private String subject;private String content;public String getTo() {return to;}public void setTo(String to) {this.to = to;}public String getSubject() {return subject;}public void setSubject(String subject) {this.subject = subject;}public String getContent() {return content;}public void setContent(String content) {this.content = content;}}

实体层

package cn.bdqn.service;import cn.bdqn.pojo.Mail;public class LeaveService {private MailService mailService;public void setMailService(MailService mailService) {this.mailService = mailService;}public void updateLeave(){//省略审批请假申请//查询数据库获取相关信息String approver = "张来";Mail mail = new Mail();mail.setTo("wj@mail.com");mail.setSubject("请假流程确认邮件");StringBuffer sb = new StringBuffer();sb.append("<html><head>");sb.append("<meta http-equiv=\"content-type\" content=\"text/html;charset=utf-8\">");sb.append("<head><body>");sb.append("<font color='blue' size='4' face='Arial'>");sb.append("OA系统温馨提示:</font><br/><br/>");sb.append("&nbsp;&nbsp;&nbsp;&nbsp;");sb.append("在OA系统中,您提交的“请假流程” "+ approver +" 已经审批完成,点击如下链接可登陆系统查看流程,谢谢。" +"如果登录时忘记密码,可以在网站登录页找回。<br/>");sb.append("<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;<a href='http://www.jboa.com'>http://www.jboa.com</a>");sb.append("<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;-----本邮件为系统自动发出,请勿回复-----");mail.setContent(sb.toString());try{mailService.send(mail);}catch(Exception e){e.printStackTrace();}}}

LeaveService

package cn.bdqn.service;import java.io.IOException;import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;import cn.bdqn.pojo.Mail;public class MailService {private JavaMailSender mailSender; //必须使用 JavaMailSenderpublic void setMailSender(JavaMailSender mailSender) {this.mailSender = mailSender;}public void send(Mail mail) throws MessagingException,IOException{MimeMessage mimeMessage = mailSender.createMimeMessage();MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true, "UTF-8");helper.setFrom("wxk@mail.com");helper.setTo(mail.getTo());helper.setSubject(mail.getSubject());helper.setText(mail.getContent(),true);mailSender.send(mimeMessage);System.out.print("发送完成!");}
}

MailService

package cn.bdqn;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import cn.bdqn.service.LeaveService;public class MailTest {public static void main(String[] args){ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");LeaveService service = (LeaveService)context.getBean("leaveService");service.updateLeave();}
}    

MailTest

4.最简单的站内传送Email上传,不需要大配置、log4j、架包

package cn.happy.mailjames;import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;public class EmailAuthenticator extends Authenticator {private String username;   private String userpass;public void setUsername(String username) {this.username = username;}public void setUserpass(String userpass) {this.userpass = userpass;}public EmailAuthenticator() {}public EmailAuthenticator(String username, String userpass) {this.username = username;this.userpass = userpass;}public PasswordAuthentication getPasswordAuthentication(){return new PasswordAuthentication(username,userpass);}}

实体层

package cn.happy.mailjames;import java.util.Date;
import java.util.Properties;import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;public class Mail {private String mailServer,from,to,mailSubject,mailContent;private String username,password;public Mail(){//设置邮件信息//进行认证登录的用户名username="wxk@mail.com";//认证密码password="wxk";//认证的邮箱对应的邮件服务器mailServer="192.168.8.71";//发件人信息from="wxk";//收件人信息to="wj@mail.com";//邮件标题mailSubject="记录成长的每一个脚印,写下漫长的程序人生";//邮件内容mailContent="这是一封测试邮件!如有雷同,纯属不可能";}//设置邮件服务器@SuppressWarnings("static-access")
public  void send(){Properties prop=System.getProperties();//指定邮件serverprop.put("mail.smtp.host", mailServer);//是否开启认证prop.put("mail.smtp.auth", "true");//smtp协议的prop.put("mail.smtp.port", "25");//产生Session服务EmailAuthenticator mailauth=new EmailAuthenticator(username, password);Session mailSession=Session.getInstance(prop,(Authenticator)mailauth);try {//封装Message对象Message message=new MimeMessage(mailSession);message.setFrom(new InternetAddress(from)); //发件人message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));//收件人
           message.setSubject(mailSubject);//设置内容(设置字符集处理乱码问题)message.setContent(mailContent,"text/html;charset=gbk");message.setSentDate(new Date());//创建Transport实例,发送邮件Transport tran=mailSession.getTransport("smtp");tran.send(message,message.getAllRecipients());tran.close();} catch (Exception e) {e.printStackTrace();}}
}

Mail

package cn.happy.mailjames;public class Test {public static void main(String[] args) {Mail mail=new Mail();mail.send();System.out.println("success!");}}

测试类

转载于:https://www.cnblogs.com/WuXuanKun/p/6186997.html

使用Spring发送带附件的电子邮件(站内和站外传送)相关推荐

  1. php 发送带附件的邮件,php发送带附件的电子邮件

    我似乎无法找到这个我写的php函数的问题,应该发送带附件的电子邮件.我已经挣扎了很长一段时间. function myMail($to, $subject, $mail_msg, $filename, ...

  2. PHP发送带附件的电子邮件,php中PHPMailer发送带附件的电子邮件方法_PHP教程

    在php开发利用PHPMailer发送邮件是常用的做法了,这种比起php mail用好用多了,下面我们来看看PHPMailer如何发送带有附件的电子邮件吧. .首先到http://phpmailer. ...

  3. Spring发送带附件邮件

    下面是一个例子使用Spring通过Gmail SMTP服务器来发送电子邮件附件.为了包含附件的电子邮件,你必须使用 Spring的JavaMailSender及MimeMessage 来代替 Mail ...

  4. php curl发邮件,使用PHP cURL通过Mailgun API发送带附件的电子邮件

    我正在尝试使用cURL通过Mailgun API发送带有1-n附件的电子邮件 . 以下代码成功发送电子邮件,但不包含附件 . 任何人都可以看到为什么以下不起作用?..任何帮助将非常感激 . // In ...

  5. JSP: 使用网易邮箱发送带附件的电子邮件

    JSP代码:使用javax.mail和activation发送邮件 首先我们需要两个jar包,javax.mail.jar和activation.jar,官方下载地址: JAF:JavaBeans A ...

  6. php smtp发送附件,PHP:如何使用smtp设置发送带附件的电子邮件?

    发现此代码是google:// pear邮件附件搜索的首批点击之一. include('Mail.php'); include('Mail/mime.php'); $text = 'Text vers ...

  7. Python+flask+flask-email发送带附件的电子邮件

    运行下面的程序之前,需要使用pip install flask-mail安装电子邮件扩展包. import os.path from flask import Flask from flask.ext ...

  8. word合并邮件无法发送html,Word邮件合并批量发送带附件的邮件

    应张老师的需求,修改制作了一个可以批量发送带附件的电子邮件VBA. 目的:给N多人发送电子邮件,而不是抄送模式,并带有对方的称谓. 实现: 用到Word的邮件合并功能,以及调用Outlook发送邮件. ...

  9. 使用Python的smtplib模块发送带附件的邮件

      上一篇文章<使用Python的smtplib模块发送简单邮件>介绍了调用smtplib模块发送包含简单内容的邮件,本文继续学习参考文献1中的发送带附件的邮件的示例代码,同时由于参考文献 ...

最新文章

  1. 鸟哥的Linux私房菜(基础学习,服务器架设)
  2. jquery-窗口滚动事件-属性操作
  3. Retrofit使用
  4. 基础层区块链Harmony发布主网新版本v4.0.0
  5. saga中的saga(A Saga on Sagas) - balavatasky - 博客园
  6. 最小二乘法求解线性回归模型及求解
  7. j1900 nas安装windows蓝屏,无网卡连不上网
  8. 团队管理---管理经典理论
  9. 手机端 19FPS 的实时目标检测算法:YOLObile
  10. arcmap武汉市各个行政区域的森林覆盖率和水体覆盖率
  11. 算法图解(一):算法简介
  12. Python项目实战:数据可视化与股票数据分析-关东升-专题视频课程
  13. 第18.1节 OE3.1实例-加载本地瓦片数据
  14. mysql root密码是什么_mysql如何查看root密码是什么
  15. 振江我的老朋友,又来了,杭萧也没让我失望呀
  16. 读《轻断食》的一些体会
  17. 为别人着想,是最大的利己
  18. Mybatis-plus的分页查询
  19. QT编译libjpeg
  20. 站长爆料:大量黑产利用高权重网站霸屏引流

热门文章

  1. ASP.NET MVC5+EF6+EasyUI 后台管理系统(92)-打印EasyUI 的datagrid表格
  2. Android监听事件
  3. 极客Web前端开发资源集锦
  4. oracle数据库扩展目录,Oracle 扩充磁盘空间
  5. linux 命令tf,Linux文件管理命令
  6. php nsdata,iOS开发之数据存储之NSData
  7. java 树面试题_java——二叉树面试题
  8. 计算机和外部通信方式,计算机和外部的通信方式
  9. Java基本数据类型及所占字节大小
  10. redisTemplate设置key零点过期,生成自增的单号