java通过springMail发送邮件

1,首先在spring配置文件中加入邮件发送配置

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
        <property name="protocol" value="${mail.protocol}"/>
        <property name="host" value="${mail.host}"/>
        <property name="port" value="${mail.port}" />
        <property name="username" value="${mail.username}"/>
        <property name="password" value="${mail.password}"/>
        <property name="javaMailProperties">
            <props>
                <prop key="mail.smtp.auth">true</prop>
                <prop key="mail.smtp.starttls.enable">true</prop>
            </props>
        </property>
 </bean>

2,配置中的参数可以写在properties配置文件中

mail.protocol=smtp
mail.from=*@*.com
mail.host=smtp.*.com
mail.port=25
mail.username=
mail.password=

3,java中的代码

首先可以定义一个通用的邮件bean

import java.io.Serializable;

import org.springframework.web.multipart.MultipartFile;

public class Email implements Serializable
{

    private static final long    serialVersionUID    = 1L;
    /** 发件人 **/
    private String                sender;
    /** 收件人* */
    private String[]              address;
    /** 抄送给* */
    private String[]              cc;
    /** 暗送给* */
    private String[]              bcc;
    /** 回复给* */
    private String                replyTo;
    /** 邮件主题* */
    private String                subject;/** 邮件内容*/
    private String              content;
    /** 附件* */
    private MultipartFile[]        attachment            = new MultipartFile[0];

    //////////////////////////getters & setters//////////////////////////////  }

发送代码

@Resource(name = "mailSender")
private JavaMailSender mailSender;

public  void sendMailBySynchronizationMode(Email email) {
        MimeMessage mime = mailSender.createMimeMessage();
        MimeMessageHelper helper;

        String content = email.getContent();

        try {
            helper = new MimeMessageHelper(mime, true, "utf-8");
            helper.setFrom(email.getSender());//发件人
            helper.setTo(email.getAddress());//收件人
            if (CommonUtils.isNotEmpty(email.getCc())) {
                helper.setCc(email.getCc());// 抄送
            }
            if (CommonUtils.isNotEmpty(email.getBcc())) {
                helper.setBcc(email.getBcc());// 暗送
            }
            if (CommonUtils.isNotEmpty(email.getReplyTo())) {
                helper.setReplyTo(email.getReplyTo());// 回复到
            }
            helper.setSubject(email.getSubject());//邮件主题
            helper.setText(content, true);//true表示设定html格式

            //处理附件
            for (MultipartFile file : email.getAttachment()) {
                if (file == null || file.isEmpty()) {
                    continue;
                }
                String fileName = file.getOriginalFilename();
                try {
                    fileName = new String(fileName.getBytes("utf-8"), "ISO-8859-1");
                } catch (Exception e) {
                }
                helper.addAttachment(fileName, new ByteArrayResource(file.getBytes()));
            }
            mailSender.send(mime);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
时间: 2024-12-06 11:50:08

java通过springMail发送邮件的相关文章

再谈用java实现Smtp发送邮件之Socket编程

很多其它内容欢迎訪问个人站点   http://icodeyou.com 前几天利用Socket实现了用java语言搭建webserver,全程下来应该会对Socket这个东西已经使用的很熟悉了.尽管抽象,可是使用过一次之后就会感受到它在网络通信上的作用是多么的强大.正好,今天就继续用Socket来练习使用下面Smtp协议发送一封简单的电子邮件.今天的故事呢,是我要约我女神出去吃饭啦啦啦~~~所以,面对Smtp.仅仅许成功,不许失败. 全局假定我的邮箱为[email protected]   女

Java代码实现发送邮件

package com.ust.email; import java.io.File;import java.util.Date; import javax.activation.DataHandler;import javax.activation.FileDataSource;import javax.mail.Address;import javax.mail.BodyPart;import javax.mail.Message;import javax.mail.Multipart;im

磁盘文件监控(Java)并发送邮件通知、系统定期执行的办法

以下是通过xml文件进行的监控路径.文件以及邮件信息的配置,读取xml文件使用的是三方jar包:dom4j 收发邮件采用的是最普通的javamail,需要两个jar包,mail.jar和activition.jar 关键代码如下: public boolean sendHtmlMail(MailSenderInfo mailInfo){ // 判断是否需要身份认证 MyAuthenticator authenticator = null; Properties pro = mailInfo.ge

java Mail如何发送邮件

1.应用场景:在系统需要发送与用户相关的消息时,而用户不在线,可以采取发送邮件的方式,使用户了解最新的系统情况 或者发送验证码等验证场景 2.实验环境 主要使用mail.jar和activation.jar两个包 3.使用一份简单的邮件 public void sendMail() throws AddressException, MessagingException{ /* * 1.得到session */ Properties properties=new Properties(); pro

用JAVA发送邮件 注:(原文来自http://blog.sina.com.cn/liuanzhi)

要用Java发送邮件,除过JDK本身的jar包之外,还需要两个额外的jar包:JavaMail和JAF.当然,如果你使用的JavaEE的JDK,那就不用单独去网上下载了,因为JavaEE的JDK中已经自带了这两个jar包.如果你使用的是JavaSE的JDK,那么你需要去Oracle的网站上下载这两个jar包.JavaMail 1.4.5 jar包下载地址是:http://www.oracle.com/technetwork/java/index-138643.html,JAF 1.1.1 jar

java实现发送邮件功能

项目中实现发送邮件功能,先书写一个小Demo,记录如下: POM.XML中导入依赖 <!-- start java 提供的支持邮件发送相关业务的类 --> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency> <!-- end

Spring发送邮件_javax.mail.AuthenticationFailedException异常已解决

在Spring项目中须要增加监控功能.监控过程中发现异常时.须要邮件报警.最初选择用javamail发送,代码量比較大(相对于spring发送).终于选择Spring邮件发送~ 以下贴一下实现的代码以及注意事项: 代码结构非常easy一个java类和一个xml文件,用到三个jar包,demo下载地址http://download.csdn.net/detail/jeofey/8892859 这里仅仅是简单的发送,假设须要发送附件或者HTML格式的邮件的话,代码在文章末尾 [java] view

java网络编程socket解析

转载:http://www.blogjava.net/landon/archive/2013/07/02/401137.html Java网络编程精解笔记2:Socket详解 Socket用法详解 在C/S通信模式中,client需要主动创建于server连接的Socket(套接字).服务器端收到了客户端的连接请求,也会创建与客户连接的Socket.Socket可看做是通信两端的收发器.server与client都通过Socket来收发数据. 1.构造Socket 1.Socket() 2.So

JavaMail(JAVA邮件服务) API详解

一.JavaMail API简介JavaMail API是读取.撰写.发送电子信息的可选包.我们可用它来建立如Eudora.Foxmail.MS Outlook Express一般的邮件用户代理程序(Mail User Agent,简称MUA).而不是像sendmail或者其它的邮件传输代理(Mail Transfer Agent,简称MTA)程序那样可以传送.递送.转发邮件.从另外一个角度来看,我们这些电子邮件用户日常用MUA程序来读写邮件,而MUA依赖着MTA处理邮件的递送.在清楚了到MUA