用spring发送带有中文的邮件主题和内容,邮件接收后总是被编码过的,怎么解决?
先来看看发送Email吧, 在Spring中发送Email是很简单的,使用Spring提高的MailSender和MailMessage就可以了,配置代码如下: smtp.163.com true 你的Email地址 你的Email密码 收件人地址 你的地址 A Spring Mail sender 上面的配置好以后就可以直接...
spring配置发送邮件的问题
配置的问题,在spring配置文件中,如果是qq邮箱的话,host的值为smtp.qq.com,username要加上@qq.com的后缀。
在代码里面message.setTo("收件箱的邮箱名");肯定有@XX.com格式的字符,message.setFrom 也是
org.springframework.mail.javamail.javamailsenderimpl 发件箱怎么配
验证错误呗。三种可能性1.用户名密码不对 2.我记得java mail有个选项要设置 mail.smtp.auth为true才行的。3.登录qq邮箱,开通smtp服务
-------不知道你有没有用过spring的 mailsender, 封装了javamail,简化使用方法。spring javamail举例:
xml
bean id="mailSender" class="b8f4-8694-8f36-cfa5 org.springframework.mail.javamail.JavaMailSenderImpl"
property name="protocol" value="smtp"/
property name="host" value="smtp.qq.com"/
property name="port" value="25" /
property name="username" value="xxx"/
property name="password" value="xxx"/
property name="javaMailProperties"
props
prop key="mail.smtp.auth"true/prop
/props
/property
/bean
@Autowired
private JavaMailSender mailSender;
@Override
public void sendCommonMail(String toMailAddr, String subject, String message) {
try{
MimeMessage mime = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mime, true, "utf-8");
helper.setFrom(ResourceUtil.getConfigByName("mail_from"));//发件人
helper.setTo(toMailAddr);//收件人
helper.setSubject(subject);//邮件主题
helper.setText(message, false);
mailSender.send(mime);
}catch(Exception e){
org.jeecgframework.core.util.LogUtil.error("email send error", e);
如何用Spring来发邮件
先来看看发送Email吧, 在Spring中发送Email是很简单的,使用Spring提高的MailSender和MailMessage就可以了,配置代码如下:
?xml version="1.0" encoding="UTF-8"?
!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "spring-beans.dtd"
beans
bean id="mailSender" class="8694-8f36-cfa5-835d org.springframework.mail.javamail.JavaMailSenderImpl"
property name="host"
valuesmtp.163.com/value
/property
property name="javaMailProperties"
props
!-- 如果要使用用户名和密码验证,这一步需要 --
prop key="mail.smtp.auth"true/prop
/props
/property
property name="username"
value你的Email地址/value
/property
property name="password"
value你的Email密码/value
/property
/bean
!-- 简单的message --
bean id="mailMessage" class="8f36-cfa5-835d-f4de org.springframework.mail.SimpleMailMessage"
property name="to"
value收件人地址/value
/property
property name="from"
value你的地址/value
/property
property name="subject" !-- Email 标题 --
valueA Spring Mail sender/value
/property
/bean
!-- 测试发送的类 --
bean id="testMailSender" class="cfa5-835d-f4de-3f6e test.mail.TestSenderMail"
property name="mailMessage"
ref bean="mailMessage"/
/property
property name="mailSender"
ref bean="mailSender"/
/property
/bean
/beans
上面的配置好以后就可以直接发送了, 看看TestSenderMail.java的代码:
package test.mail;
import org.springframework.mail.MailException;
import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;
public class TestSenderMail {
private MailSender mailSender;
private SimpleMailMessage mailMessage;
public TestSenderMail() { }
public SimpleMailMessage getMailMessage() {
return mailMessage; }
public void setMailMessage(SimpleMailMessage mailMessage) {
this.mailMessage = mailMessage; }
public MailSender getMailSender() {
return mailSender; }
public void setMailSender(MailSender mailSender) {
this.mailSender = mailSender; }
public void sendMail() {
SimpleMailMessage message = new SimpleMailMessage(mailMessage); //设置email内容,
message.setText("测试Spring 发送Email.");
try {
mailSender.send(message);
} catch (MailException e) {
System.out.println("O . 发送Email失败了....");
e.printStackTrace();
很简单吧. 下面是测试类: TestApp.java
package test.mail;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestApp {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext( "test/mail/mail.xml");
TestSenderMail sender = (TestSenderMail) context .getBean("testMailSender");
sender.sendMail();
//抛出如下异常,是瑞星监控的问题,关闭就可以了
/** * DEBUG SMTP: QUIT failed with 250 O . 发送Email失败了....
* org.springframework.mail.MailSendException: Could not send mails: 354
* * com.sun.mail.smtp.SMTPSendFailedException: 354 * * at * com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1388) * at com.sun.mail.smtp.SMTPTransport.finishData(SMTPTransport.java:1215) at * com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:586) */
呵呵, 现在就可以发送Email了.
最后提醒一下,记得要将:activation.jar 和 mail.jar 两个包导入到工程
springboot用163邮箱、阿里云企业邮箱发送邮件的配置
springboot+JavaMail用163和阿里云企业邮箱的smtp服务都可以发送邮件,区别在于发送人的邮箱地址。用163免费邮箱,收件人看到的发件邮箱是XXX@163.com,用阿里云企业邮箱可以用自己的域名,例如account@mydomain.com。当然,也可以用其它的免费企业邮箱。
前期准备工作做个简单描述。
去阿里云申请免费企业邮箱
建邮箱账号
下面正式开始
端口:163用25,阿里云企业邮箱用587
password:163用授权码,阿里云企业邮箱用邮箱账号密码
starttls.enable、starttls.required:163配置true,阿里云企业邮箱配置false
中文别名的格式:中文别名邮箱地址,例如:打字狗通行证account@dazigo.vip
想练打字的朋友可以去我的网站:打字狗(dazigo.vip) 在线练习打字
; public class TestApp { public static void main(String[] args) { Applicat
云企业邮箱用587 password:163用授权码,阿里云企业邮箱用邮箱账号密码 starttls.enable、starttls.required:163配置true,阿里云企业邮箱配置false 中文别名的格式:中文别名邮箱地址,例如
ApplicationContext; public class TestApp { public static void main(String[] args) { ApplicationContext c
ssage getMailMessage() { return mailMessage; } public void setMailMessage(SimpleM