JavaMailSenderImpl发送邮件报错:530 5.7.0 Must issue a STARTTLS command first. e3sm1531

使用Spring JavaMailSenderImpl发送邮件报错:

详细信息:

javax.mail.MessagingException: 530 5.7.0 Must issue a STARTTLS command first. u12sm73042tia.38

at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:879)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:599)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:319)
at com.roadway.edmail.util.JMail2.sendMail(JMail2.java:278)
at com.roadway.edmail.bo.feedback.FeedbackSender.sender(FeedbackSender.java:72)
at org.apache.jsp.test_jsp._jspService(test_jsp.java:59)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

  

原因是用gmail邮件进行发送,需要添加一下参数:

   properties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); 
   properties.setProperty("mail.smtp.socketFactory.fallback", "false"); 
   properties.setProperty("mail.smtp.port", "465"); 
   properties.setProperty("mail.smtp.socketFactory.port", "465");

 

发送Mail实例代码

//检测收件地址合法性
if(toAry == null || toAry.length == 0 || toAry[0] == null || "".equals(toAry[0])){
	if(this.logger.isErrorEnabled()){
		this.logger.error("Recipient found empty while sending a mail,Mail subject is : " + mailSubject);
	}
	return "Recipient is empty";
}
JavaMailSenderImpl javaMailSender = (JavaMailSenderImpl)AppUtil.getBean("mailSender");
		
//检测是否为smtp.gmail.com
if(javaMailSender.getHost().indexOf("smtp.gmail.com") >=0 ){
	Properties properties = javaMailSender.getJavaMailProperties();
	properties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); 
            properties.setProperty("mail.smtp.socketFactory.fallback", "false"); 
            properties.setProperty("mail.smtp.port", "465"); 
            properties.setProperty("mail.smtp.socketFactory.port", "465");
            javaMailSender.setJavaMailProperties(properties);
}
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
		
try {
	MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, fileAry != null);
	//设置发送者
	mimeMessageHelper.setFrom(from == null ? this.defaultFrom : from);
	//设置接受者
	mimeMessageHelper.setTo(toAry);
	//设置抄送者
	if(cc != null && !"".equals(cc))
		mimeMessageHelper.setCc(cc);
	//设置回复者
	if(replyTo != null && !"".equals(replyTo))
		mimeMessageHelper.setReplyTo(replyTo);
	//邮件主题
	mimeMessageHelper.setSubject(mailSubject);
	//邮件正文
	mimeMessageHelper.setText(templateStr,true);
	//判断资源文件列表是否为空
	if(fileAry != null){
		if(flag){//若为嵌入式资源
			for(int i = 0; i < fileAry.length; i++)
				mimeMessageHelper.addInline(stringAry[i], fileAry[i]);
		}else{
			for(int i = 0; i < fileAry.length; i++)
				mimeMessageHelper.addAttachment(stringAry[i], fileAry[i]);
		}
	}
	//发送
javaMailSender.send(mimeMessage);

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值