zoukankan      html  css  js  c++  java
  • SpringMvc使用JavaMail发送邮件,并使用465端口开启ssl加密传输,保证邮件安全

    代码在本地发邮件没任何问题。但部署到服务器,发送邮件显示连接异常。一开始非常懵逼,之后telnet smtp.163.com 25不通,发现是云服务器出于安全考虑,关闭了服务器的25端口,而25端口是smtp的默认端口。之后telnet smtp.163.com 465能通(邮件服务商的加密的465端口)。

    1、POM文件配置:

    <dependencies>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>4.1.6.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context-support</artifactId>
                <version>4.1.6.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>javax.mail</groupId>
                <artifactId>mail</artifactId>
                <version>1.4.7</version>
            </dependency>
     </dependencies>
    

    2、spring 配置:

    <!-- 邮箱配置 -->
    	 <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
            <property name="host" value="smtp.163.com" />
            <property name="username" value="********" />
            <property name="password" value="********" />
            <property name="port" value="465" />  
     
            <property name="javaMailProperties">
                <props>
                    <prop key="mail.smtp.auth">true</prop>
                    <prop key="mail.smtp.timeout">50000</prop>
                    <prop key="mail.smtp.starttls.enable">true</prop>
                    <!-- <prop key="mail.debug">true</prop> -->        
                    <prop key="mail.smtp.socketFactory.port">465</prop>
                    <prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop> 
                    <prop key="mail.smtp.socketFactory.fallback">false</prop>
                </props>
            </property>
        </bean>
    

     3、代码实例:

    /**
    * 组织邮件信息并发送邮件
    * 
    * @param toAddress
    * @param fromAddress
    * @param subject
    * @param htmlBody
    * @throws MessagingException
     */
    public void sendHtmlEmail(String toAddress, String fromAddress, String subject, String htmlBody)
    			throws MessagingException {
    	MimeMessage message = mailSender.createMimeMessage();
    	MimeMessageHelper helper = new MimeMessageHelper(message, "UTF-8");
    	helper.setTo(toAddress);
    	helper.setFrom(fromAddress);
    	helper.setText(htmlBody, true);
    	helper.setSubject(subject);
    	mailSender.send(message);
    }
    
    this.sendHtmlEmail("18753377533@163.com", "sender@163.com", "找回您的账户密", emailContent);
    

      https://www.cnblogs.com/dixinyunpan/p/6041278.html

           https://blog.csdn.net/yuruixin_china/article/details/73276390

  • 相关阅读:
    定时任务 cron 学习
    [转]交换机互联不同 vlan 及不同网段通信问题总结
    H3C Cloud Lab配置不生效的解决办法
    使用NPTP+SecureCRT连接H3C Cloud Lab中的路由器
    postgresql 创建索引
    php多进程应用场景实例详解
    pcntl扩展学习
    Kubernetes进阶实战读书笔记:Daemonset控制器|Job控制器
    Kubernetes进阶实战读书笔记:资源需求及限制
    Kubernetes进阶实战读书笔记:POD对象的生命周期(探针检测)
  • 原文地址:https://www.cnblogs.com/zhangmingcheng/p/10949507.html
Copyright © 2011-2022 走看看