Spring JavaMailSenderImpl发送邮件时中文乱码处理

<bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
	    <property name="host" value="smtp.163.com"/>
	    <property name="port" value="25"/>
	    <property name="username" value="18011111111@163.com"/>
	    <property name="password" value="123456"/>
	    <!-- <property name="defaultEncoding" value="UTF-8"/> -->
	    <!-- <property name="javaMailProperties">  
           <props>  
               验证身份  
               <prop key="mail.smtps.auth">true</prop>  
               <prop key="mail.smtp.ssl.enable">true</prop>  
            <prop key="mail.transport.protocol">smtps</prop>  
          </props>  
       </property>  -->
	</bean>

上面是在spring中配置邮件发送器的代码,其中设置了默认编码为UTF-8。但是在实际的应用中会554的错误,因为乱码导致发出的邮件被识别为垃圾邮件。

try {
        	MimeMessage message = javaMailSender.createMimeMessage();
    		MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8");
    		helper.setFrom("18011111111@163.com");
    		helper.setTo("551111111@qq.com");
    		helper.setSubject("交换契约");
    		helper.setText("你好,很高兴认识你!");
    		
    		UrlResource ur = new UrlResource("http://192.168.1.109:8089/common/2016/11/11/20161111141623053228.png");
    		helper.addAttachment("附件.jpg", ur);
        	javaMailSender.send(message);
        }
        catch (MailException ex) {
            // simply log it and go on...
            ex.printStackTrace();
        } catch (MessagingException e) {
			e.printStackTrace();
		}
在上面的代码中,加入MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8");这句话。在编码层中明确使用UTF-8编码,这样的话就不会出现乱码了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值