Java-利用spring发送邮件

最近项目中需要发送邮件的功能,于是百度一大把例子。但是有很多都是一样的,一点特点都没有。所以决定整理一番。
        在spring2.X以后的版本就提供了org.springframework.mail来解决javaMail的集成问题。org.springframework.mail.javamail.JavaMailSenderImpl就是基于JavaMail API提供的MailSender实现类。这个实现类提供的功能已经非常完善了。支持各种类型的邮件的发送。代码量也大大减少。下面就用一个例子来说明它的优越性吧。
        spring集成javaMail肯定是要配置一个bean的,当然也可以在代码里写死,但是不推荐。spring关键代码如:
<!-- 配置MailSender -->

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">

    <!-- 邮件服务器 -->

    <property name="host" value="smtp.163.com" />

    <!-- 端口 -->

    <property name="port" value="25" />

    <!-- 你的邮箱 -->

    <property name="username" value="" />

    <!-- 邮箱密码 -->

    <property name="password" value="" />

    <property name="javaMailProperties">

        <props>

            <!-- 是否进行身份认证 -->

            <prop key="mail.smtp.auth">true</prop>

            <!-- 是否采用SSL登录 -->

            <prop key="mail.smtp.starttls.enable">true</prop>

        </props>

    </property>

</bean>
 
        最关键的一步做好了,现在写个方法测试一下。先写个比较简单的 纯文本邮件发送方法吧。 关键代码:
public static void simpleMail() {

        try {

            // 使用Spring提供的MailSender

            ApplicationContext app = new ClassPathXmlApplicationContext(

                    "spring-mail.xml");

            JavaMailSender mailSender = (JavaMailSender) app

                    .getBean("mailSender");

            // 创建一个纯文本邮件

            SimpleMailMessage mail = new SimpleMailMessage();

            // 发送方

            mail.setFrom(YourMail);

            // 接收人

            mail.setTo(ToMail);

            // 邮件标题

            mail.setSubject("测试简单邮件发送");

            // 内容

            mail.setText("测试使用SpringMailSender发送邮件");

            // 发送

            mailSender.send(mail);

            System.out.println("邮件发送成功!");

        } catch (Exception e) {

            e.printStackTrace();

        }

    }
 
         YourMail、ToMail自己设定哈,我的就不暴露出来了。跑一下看看的。控制台输出发送成功,去邮箱看看的。如图:
mai1l
        刚一打开FoxMail就提示收到邮件了,还是比较顺利。如果要发送个附件,汇报一下工作呢。这个方法是不满足要求的,那就再写个方法吧。关键代码:
public static void attachedFileMail() {

        try {

            ApplicationContext app = new ClassPathXmlApplicationContext(

                    "spring-mail.xml");

            JavaMailSender mailSender = (JavaMailSender) app

                    .getBean("mailSender");

            MimeMessage mime = mailSender.createMimeMessage();

            // multipart模式 为true时发送附件 可以设置html格式

            MimeMessageHelper messageHelper = new MimeMessageHelper(mime, true,

                    "utf-8");

            // 发送方

            messageHelper.setFrom(YourMail);

            // 接收人

            messageHelper.setTo(ToMail);

            // 邮件标题

            messageHelper.setSubject("测试包含附件邮件发送");

            // true 表示启动HTML格式的邮件

            messageHelper

                    .setText(

                            "<html><head></head><body><h3>你好:附件中有惊喜,请查收!</h3></body></html>",

                            true);

            // 附件

            FileSystemResource file = new FileSystemResource(new File(

                    "D:\\a.xls"));

            messageHelper.addAttachment("a.xls", file);

            // 发送

            mailSender.send(mime);

            System.out.println("邮件发送成功!");

        } catch (MessagingException e) {

            e.printStackTrace();

        }

    }
 
        运行一下,又成功了。刷新邮箱看看的。
  mail21
        还是比较简单吧,相信这个代码已经表达的相当透彻了,如果还有不明白的,去我的网盘下载吧。地址:
注意:下载的demo还不能运行,需要自己在xml已经以及java代码中设置邮箱和密码。

原创文章,转载请注明: 转载自java开发者

本文链接地址: Java-利用spring发送邮件

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值