`

spring 40天全程跟踪 第一天spring发送邮件

    博客分类:
  • Java
阅读更多
com.sun.mail.smtp.SMTPSendFailedException: 553 You are not authorized to send mail, authentication is required
邮件发送成功

	at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1275)
	at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:895)
	at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:524)
	at javax.mail.Transport.send0(Transport.java:151)
	at javax.mail.Transport.send(Transport.java:80)
	at com.mixian.springEmail.MainEmail.send(MainEmail.java:113)
	at com.mixian.springEmail.MainEmail.main(MainEmail.java:138)
 spring发送邮件: package com.mixian.springEmail; import java.io.UnsupportedEncodingException; import java.util.Date; import java.util.Enumeration; import java.util.Properties; import java.util.Vector; import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.mail.Authenticator; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; import javax.mail.internet.MimeUtility; public class MainEmail { //收件人 private String to=""; //发件人 private String from=""; //smtp服务器 private String smtpServer=""; //用户名 private String username=""; //密码 private String pwd=""; //附件文件名 private String filename=""; //邮件主题 private String subject=""; //邮件正文 private String content=""; //附件文件集合 Vector file = new Vector(); //构造函数 public MainEmail(){} public MainEmail(String to,String from,String smtpServer,String username,String pwd, String filename,String subject,String content){ this.to = to; this.from = from; this.smtpServer = smtpServer; this.username = username; this.pwd = pwd; this.filename = filename; this.subject = subject; this.content = content; } //邮件主题转换成中文 public String transferChinese(String strText){ try { strText = MimeUtility.encodeText(new String(strText.getBytes(),"GB2312"), "GB2312", "B"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return strText; } //增加附件 public void attachfile(String fname){ file.addElement(fname); } //发送邮件 public boolean send(){ //创建邮件session所需的对象 Properties props = System.getProperties(); props.put("mail.smtp.host", smtpServer); props.put("mail.smtp.auth", "true"); //创建session Session session = Session.getDefaultInstance(props, new Authenticator(){ public PasswordAuthentication getPasswordAuthentication(){ return new PasswordAuthentication(username,pwd); } }); try { MimeMessage msg = new MimeMessage(session); msg.setFrom(new InternetAddress(from)); InternetAddress[] address = {new InternetAddress(to)}; msg.setRecipients(Message.RecipientType.TO, address); msg.setSubject(subject); //构造Multipart Multipart mp = new MimeMultipart(); //添加正文 MimeBodyPart mbpContent = new MimeBodyPart(); mbpContent.setText(content); mp.addBodyPart(mbpContent); //向Multipart添加附件 Enumeration efile = file.elements(); while(efile.hasMoreElements()){ MimeBodyPart mbpFile = new MimeBodyPart(); filename = efile.nextElement().toString(); FileDataSource fds = new FileDataSource(filename); //处理附件 mbpFile.setDataHandler(new DataHandler(fds)); mbpFile.setFileName(fds.getName()); //向MimeMessage mp.addBodyPart(mbpFile); } file.removeAllElements(); msg.setContent(mp); msg.setSentDate(new Date(0)); Transport.send(msg); } catch (MessagingException e) { e.printStackTrace(); /*Exception ex=null; if((ex==e.getNextException())!=null){ ex.printStackTrace(); }*/ return false; } return true; } public static void main(String[] args) { MainEmail sendMail = new MainEmail(); sendMail.setSmtpServer("smtp.163.com"); sendMail.setUsername("xx"); sendMail.setPwd("xx"); sendMail.setTo("xx"); sendMail.setFrom("test@163.com"); sendMail.setSubject("test spring email"); sendMail.setContent("这是一个带多附件的测试"); sendMail.attachfile("D:\test.txt"); sendMail.attachfile("D:\test.txt"); sendMail.send(); System.out.println("邮件发送成功"); } public String getTo() { return to; } public void setTo(String to) { this.to = to; } public String getFrom() { return from; } public void setFrom(String from) { this.from = from; } public String getSmtpServer() { return smtpServer; } public void setSmtpServer(String smtpServer) { this.smtpServer = smtpServer; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } public String getFilename() { return filename; } public void setFilename(String filename) { this.filename = filename; } public String getSubject() { return subject; } public void setSubject(String subject) { this.subject = subject; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public Vector getFile() { return file; } public void setFile(Vector file) { this.file = file; } }

 操作结果报错:

 

com.sun.mail.smtp.SMTPSendFailedException: 553 You are not authorized to send mail, authentication is required
邮件发送成功

	at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1275)
	at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:895)
	at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:524)
	at javax.mail.Transport.send0(Transport.java:151)
	at javax.mail.Transport.send(Transport.java:80)
	at com.mixian.springEmail.MainEmail.send(MainEmail.java:113)
	at com.mixian.springEmail.MainEmail.main(MainEmail.java:138)

 解决方法:用户登录的邮件名 要与发送的邮件名一样

分享到:
评论

相关推荐

    java发送邮件 spring发送邮件

    通过以上步骤,你就可以在Java应用中使用Spring发送邮件了。当然,实际的邮件发送可能更复杂,涉及HTML内容、附件、多部分消息等,可以使用`MimeMessage`和`MimeMessageHelper`类来构建复杂的邮件结构。例如,添加...

    Spring Boot整合邮件发送并保存历史发送邮箱

    Spring Boot整合邮件发送并保存历史发送邮箱 项目描述 项目主要是使用 Spring Boot 发送邮件,主要的技术点有: 1、Spring Boot +mybatis的整合 2、Spring Boot项目中jsp的使用 3、Spring Boot 发送邮件...

    spring各种邮件发送

    在"spring各种邮件发送"这个主题中,我们将探讨Spring框架如何帮助开发者实现电子邮件的发送。邮件服务在许多应用场景中都十分常见,例如用户注册确认、密码重置提醒等。 首先,Spring框架提供了`JavaMailSender`...

    spring发送邮件demo

    下面将详细介绍如何使用Spring发送邮件。 首先,我们需要在项目中引入Spring的邮件支持。这通常通过添加`spring-context-support`依赖来完成,该依赖包含了处理邮件发送所需的类。在Maven项目中,可以在pom.xml文件...

    Spring邮件发送源码

    接下来,我们将介绍如何使用Spring发送不同类型的邮件: 1. **发送纯文本邮件**: 要发送纯文本邮件,你可以创建一个`SimpleMailMessage`对象,设置发件人、收件人、主题和正文,然后调用`JavaMailSender`的`send...

    Spring 高效批量邮件发送

    在本话题中,我们将探讨“Spring高效批量邮件发送”这一技术点,这通常涉及到Spring框架中的邮件服务模块以及如何优化邮件发送的效率。 首先,Spring框架的MailSender接口是处理邮件发送的核心组件。它提供了send()...

    spring集成邮件服务

    而Spring集成邮件服务则是一个常见的需求,特别是对于那些需要发送确认邮件、通知或者报告的应用来说。下面将详细阐述Spring如何与JavaMail API结合,实现邮件服务的集成。 首先,我们需要理解JavaMail API。...

    Spring邮件发送

    在Java开发中,Spring框架提供了一种简单而强大的方式来发送电子邮件。Spring的`JavaMailSender`接口以及其实现类`SimpleMailMessage`和`MailMessage`,使得开发者能够轻松地集成邮件服务到应用程序中。这篇博客()...

    struts spring 实现简单的邮件发送

    邮件服务类中的方法可以接收邮件的发件人、收件人、主题和内容作为参数,然后调用JavaMailSender的send方法发送邮件。 3. **Struts2整合**:在Struts2的配置文件(struts.xml)中,定义一个Action类,该类会调用...

    spring培训笔记第一天

    ### Spring培训笔记第一天:深入理解Spring框架的核心概念与实践 #### Spring框架简介 Spring框架是企业级应用开发中广泛使用的轻量级框架,它通过提供一系列的开发模式和最佳实践来简化Java应用的开发过程。...

    Spring邮件发送服务(java邮件发送)

    在Java开发中,Spring框架提供了一种方便的方式来发送电子邮件,这就是SpringMail模块。SpringMail使得在应用程序中集成邮件服务变得更加简单,它支持多种功能,包括发送带有多个附件、多接收者(包括抄送和暗送)的...

    spring定时发送邮件

    在本项目中,我们关注的是Spring的一个特定功能——定时任务,以及如何结合这个功能来实现邮件的自动发送。这涉及到Spring的两大模块:Spring Task(Spring的定时任务模块)和Spring Mail(用于发送邮件的模块)。 ...

    Spring mvc 发送邮件功能

    在Spring MVC框架中,实现邮件发送功能通常涉及配置Spring的JavaMailSender接口和使用模板引擎如FreeMarker来创建动态邮件内容。以下是一个详细的步骤指南: 1. **依赖库**: - `javax.mail`:这是Java邮件API的...

    spring JavaMailSenderImpl 发送邮件 java

    - **创建SimpleMailMessage对象**: SimpleMailMessage是Spring提供的一个预定义的邮件消息类,我们可以在这里设置邮件的发件人、收件人、主题和正文。 - **调用send方法发送邮件**: 使用JavaMailSenderImpl的send...

    spring框架使用以及邮件发送

    8. **邮件发送**:Spring框架提供了`JavaMailSender`接口和相关的实现类,可以方便地发送邮件,支持HTML格式、附件等,这对于发送通知或报告非常有用。 在实际开发中,Spring框架的强大功能可以极大地提高开发效率...

    spring mail通过代理发送邮件

    Spring Mail是Spring Framework的一个扩展模块,它提供了与JavaMail API的简单集成,用于发送电子邮件。在某些企业环境中,由于网络安全策略,直接访问互联网可能被禁止,这时就需要通过HTTP或SOCKS代理来发送邮件。...

Global site tag (gtag.js) - Google Analytics