• 使用Spring框架整合Java Mail


        我的博客名为黑客之谜,今天演示的案例中会出现我的邮箱,还不赶紧收藏!我现在是小白,但是随着时间的流逝,我会逐渐向大神走进,所以,喜欢我的,或者喜欢大神的,点一波关注吧!顺便说一下,双十二快到了,有什么东西要买的可以去消费一下,反正小编这时候就连淘宝网都不会点进的(想哭)。

        如果转载我的文章请标明出处和著名,谢谢配合。

        我的博客地址为:https://www.cnblogs.com/themysteryofhackers/p/12018787.html

         更新时间为:2019-12-10

     

    一、创建Maven项目

        如何创建Maven项目的步骤我就不再论述了,忘记的话就看会我上一篇博客吧!

    15757962091_thumb2[4]

     

         创建好Maven项目之后,就创建包、类和配置文件,这次就创建一个测试类和一个xml配置文件,

    1575970086(1)

         TestEmail.java

    package com.zzx.email;

    import org.junit.Test;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    import org.springframework.mail.javamail.JavaMailSender;
    import org.springframework.mail.javamail.MimeMessageHelper;

    import javax.mail.MessagingException;
    import javax.mail.internet.MimeMessage;

    public class TestEmail {
    @Test
    public void testEmail() throws MessagingException {
    ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
    // 拿到邮件发送者对象,就是放到spring中的bean
    JavaMailSender javaMailSender = (JavaMailSender) context.getBean("javaMailSenderImpl");
    System.out.println("=========="+javaMailSender);
    // 创一个邮件对象
    MimeMessage message = javaMailSender.createMimeMessage();
    // 新建一个邮件助手
    // MimeMessageHelper messageHelper = new MimeMessageHelper(message, "UTF-8");
    // 第二个参数设置是否为附件邮件
    MimeMessageHelper messageHelper = new MimeMessageHelper(message, false, "UTF-8");
    // 设置发送者(这和配置文件写的邮箱要一直)
    messageHelper.setFrom("1447239300@qq.com");
    // 设置目的地(这些接受者邮箱)
    messageHelper.setTo("zhangzixiongc501@sina.com");
    // Carbon Copy(抄送)
    //messageHelper.setCc("zhangzixiongc501@sina.com");
    // Blind Carbon Copy(暗抄送)。
    //messageHelper.setBcc("zhangzixiongc501@sina.com");
    // 邮件内容
    // 第二个参数为true时。内容是html
    String html = "<!DOCTYPE html> " + "<html> " + " " + " <head> " + " <meta charset="utf-8" /> " + " <title></title> " + " </head> " + " <body> " + " <h1 style='color:red;'>我是网页!!!!</h1> "+"<p>这是在测试Spring框架整合java Mail</P>" + " </body> " + " " + "</html>";
    messageHelper.setText(html, true);
    // 邮件主题
    messageHelper.setSubject("测试Spring框架整合Java mail!!");
    //添加附件
    //messageHelper.addAttachment("附件1.jsp",new File("C:\Users\chair\Desktop\info.jsp"));
    javaMailSender.send(message);
    }
    }

     

         applicationContext.xml

     

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:aop="http://www.springframework.org/schema/aop"
           xmlns:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
    				http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
    				http://www.springframework.org/schema/context
    				http://www.springframework.org/schema/context/spring-context-4.3.xsd
    				http://www.springframework.org/schema/aop
    				http://www.springframework.org/schema/aop/spring-aop-4.3.xsd">
    
        <!-- spring mail -->
        <bean id="javaMailSenderImpl" class="org.springframework.mail.javamail.JavaMailSenderImpl">
            <property name="host" value="smtp.qq.com"/>
            <property name="port" value="465"/>
            <property name="username" value="1447239300@qq.com(这里写你要用来发送邮件的邮箱)"/>
            <property name="password" value="这里填写你的邮箱授权码,不是你的QQ密码"/>
            <property name="javaMailProperties">
                <props>
                    <!--  设置认证开关 -->
                    <prop key="mail.smtp.auth">true</prop>
                    <!-- 设置延迟时间 -->
                    <prop key="mail.smtp.timeout">30000</prop>
                    <!-- 使用调试开关 -->
                    <prop key="mail.debug">true</prop>
                    <prop key="mail.smtp.starttls.enable">true</prop>
                    <prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
                    <!--<prop key="mail.smtp.socketFactory.port">465</prop>-->
                </props>
            </property>
        </bean>
    
    </beans>

    二、导入项目依赖

         导入Spring项目的依赖和Java Mail的依赖,还有单元测试的依赖,依赖是导入pom.xml文件里的。

    <dependencies>
    <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
    </dependency>

    <!--spring 依赖 -->
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>4.3.12.RELEASE</version>
    </dependency>
    <!--spring mail begin -->
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context-support</artifactId>
    <version>4.3.12.RELEASE</version>
    </dependency>
    <dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.4.7</version>
    </dependency>
    <!--spring mail end -->

    </dependencies>

    <build>
    <plugins>
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
    <!-- 代码检错版本号 -->
    <source>1.8</source>
    <!-- 代码编译版本号 -->
    <target>1.8</target>
    <!--项目字符集 -->
    <encoding>UTF-8</encoding>
    </configuration>
    </plugin>
    </plugins>
    </build>

     

    三、开通发送邮件的服务

        要开通这样的服务你才可以通过程序发送邮箱给别人,否则邮件发送不了,因为我用的是QQ邮箱,所以我打开邮箱---》选择“设置”-----》“账户”------》往下拉看到POP3/IMAP/SMTP……服务等等,开通IMAP/SMTP服务,开通后它会给你一个授权码,你要保存起来,不要外传,这个授权码给别人知道的话,别人就可以操作你的邮箱了。得到授权码后将其写在applicationContext.xml文件中就行。

     

    1575978123(1)

    四、发送邮件

         直接运行单元测试,看结果。

    1575969992(1)

    1575977284(1)

        这样邮箱就发送成功了。

    结尾

          我是一个Java程序员,一个向往技术的小白,以后我会陆续将自己学习到的Java或者其他的知识会以博客的形式分享出来,希望能对大家有帮助。

         喜欢小编的就给我一个关注吧!

         如果有哪些问题、有哪些不妥或者侵犯到您的权益的地方,可以联系我,我马上修改。

     

  • 相关阅读:
    UICollectionView 布局
    ios 调用支付宝
    iOS POST 上传图片
    ios 判断字符串是否为空
    让写代码成为每天的习惯
    gocron_跨平台定时任务管理器
    monkey做安卓APP的黑盒自动化测试
    Android自动化测试框架分析
    联合查询中where 和and的区别
    JIRA中导出BUG列表是CSV格式的,打开后是乱码
  • 原文地址:https://www.cnblogs.com/themysteryofhackers/p/12018787.html
Copyright © 2020-2023  润新知