1.发送MIME邮件遇到的错误
JavaMail Exception: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
at com.sun.net.ssl.internal.ssl.InputRecord.handleUnknownRecord(InputRecord.java:523)
at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:355)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:789)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1112)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1139)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1123)
at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:503)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:234)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1672)
... 19 more
解决方法:
配置JavaMail的Properties时,不要指定“mail.smtp.socketFactory.class”,因为TLS使用的是普通的Socket。
然后指定属性“mail.smtp.starttls.enable”为“true”。
代码如下:
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.qq.com"/>
<property name="port" value="25"/>
<property name="username" value="1210845252@qq.com"/>
<property name="password" value="aa1111111"/>
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.starttls.enable">true</prop>
<!-- <prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
-->
</props>
</property>
</bean>
2.发送纯文本邮件
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
at javax.mail.internet.MimeUtility.<clinit>(MimeUtility.java:1161)
at javax.mail.internet.InternetAddress.setPersonal(InternetAddress.java:216)
at org.apache.commons.mail.Email.createInternetAddress(Email.java:525)
at org.apache.commons.mail.Email.addTo(Email.java:653)
at org.apache.commons.mail.Email.addTo(Email.java:636)
at com.herostart.framework.zh.mail.MailServiceImpl.sendMailBySynchronizationMode(MailServiceImpl.java:85)
at com.herostart.framework.zh.mail.MailServiceImpl.sendMail(MailServiceImpl.java:52)
at com.herostart.framework.zh.mail.MailServiceImpl.sendMail(MailServiceImpl.java:36)
at com.herostart.framework.zh.mail.MailServiceImpl.main(MailServiceImpl.java:151)
在使用javamail发送邮件的时候,出现“java.lang.NoClassDefFoundError:
com/sun/mail/util/LineInputStream”这样的错误,
javax.mail和javax.activation这两个包已经在javaEE5当中属于基础包了,就是MyEclipse中已经自带了。但是里面的方法与最新JDK的javamail包不一致导致的错误
解决方法:
进入MyEclipse的安装目录下(这是我机器上的MyEclipse安装目录,也许你的不同)
D:\MyEclipse6.5\myeclipse\eclipse\plugins\com.genuitec.eclipse.j2eedt.core_6.5.0.zmyeclipse650200806\data\libraryset\EE_5
这个目录下,可以看到javaee.jar包,双击使用压缩软件打开把这个包文件,然后进到javax文件夹中,删除mail目录和activation目录,也可能是jar包。
删掉之后,在运行代码,就不会出现错误了,当然不要把整个javaee.jar包给删除了,他里面还有其它很多功能包,比如servlet,如果有引用 其它功能,还是会报错的.
最后添加最新的mail.jar和activation.jar就OK了
分享到:
相关推荐
"常规JavaMail 邮件发送实用类"标题所指的,通常是一个自定义的Java类,封装了JavaMail API的基本操作,使得邮件发送变得更加简单和便捷。这类实用类一般包含配置SMTP服务器、设置邮件内容、添加附件等功能。 ...
同时,为了提高用户体验,可以考虑添加邮件发送状态的反馈,如成功提示或者错误信息。 总的来说,JavaMail与Struts2结合可以方便地在Web应用中实现邮件功能,提供给用户便捷的邮件服务。理解JavaMail API的使用方法...
JavaMail邮件发送工具类是Java开发中用于发送电子邮件的标准库,它提供了丰富的API来处理复杂的邮件功能。在JavaMail中,我们可以通过创建特定的类和对象来实现邮件的发送。以下将详细介绍这些类以及如何使用它们。 ...
在使用JavaMail进行邮件发送的过程中,可能会遇到以下几种常见问题:发送成功但收件方未收到邮件、邮件收到后无主题或无收件人信息以及邮件内容出现乱码等情况。本文将详细探讨这些问题的原因及相应的解决方案。 ##...
在本篇文章中,我们将深入探讨如何利用Spring来实现JavaMail邮件发送,以及在实际应用中需要注意的关键点。 首先,我们需要理解JavaMail API的基础概念。JavaMail是一个用于处理邮件的开放源码API,它允许开发者...
JavaMail是一种广泛使用的Java库,用于在应用程序中发送电子邮件。这个标题"JavaMail发送...同时,对于企业级应用,通常会使用邮件服务提供商如SendGrid、Mailgun等,它们提供了更稳定、安全且易于管理的邮件发送服务。
以上就是使用 JavaMail 进行邮件发送的基本步骤。在实际应用中,可能还需要考虑错误处理、邮件附件、延迟发送等功能。记住,发送邮件时要遵循相关法规,尊重用户的隐私,避免被视为垃圾邮件。通过这个简单的示例,你...
JavaMail邮件发送是Java开发中一个常见的任务,用于程序自动化发送电子邮件。这个技术基于JavaMail API,它提供了一组丰富的接口和类,使得开发者能够轻松地处理邮件的发送、接收和管理。在JavaMail中,主要涉及的...
JavaMail邮件发送是一个常见的开发需求,它允许程序员通过编程方式发送包含文本、附件甚至多媒体内容的电子邮件。在Java中,JavaMail API提供了这样的功能,它是一个开源库,用于处理SMTP(简单邮件传输协议)、POP3...
在给定的示例中,通过 JSP 页面实现了基于 JavaMail 的电子邮件发送功能。以下是对关键部分的详细解释: ##### 1. JSP 页面设置 - **页面导入**:首先,该 JSP 页面通过 `<%@ page import="... "%>` 指令导入了...
在JavaMail中,我们主要关注如何使用它来实现邮件发送的功能。 首先,发送邮件的关键在于设置SMTP服务器的相关配置。SMTP服务器是邮件发送的载体,大多数邮件服务提供商如Gmail、Yahoo或Outlook都提供了SMTP服务器...
JavaMail邮件发送是一种在Java应用程序中发送电子邮件的技术。它是一个开源的Java库,允许开发者通过SMTP(简单邮件传输协议)或其他邮件传输协议向互联网上的邮件服务器发送邮件。这个程序是用Java编写的,并且在...
在使用JavaMail进行邮件发送时,如果邮件服务器配置了SSL/TLS,我们需要在代码中启用相应的安全设置。 在`SendMail.java`中,我们需要设置以下关键参数: 1. `Properties props`:这是一个属性对象,用来存储连接...
System.err.println("邮件发送给 " + recipient + " 失败: " + e.getMessage()); } } ``` 7. **线程安全与性能优化**:如果需要大量并发发送,可以考虑使用线程池,或者将邮件信息存储在队列中,由后台任务进行...
这个基于 Javamail 的邮件发送客户端项目,显然利用了这一强大的工具来构建一个 Web 界面,用于四川联通电子渠道的邮件服务。下面我们将详细探讨 JavaMail 的核心概念以及如何实现邮件发送客户端。 1. **JavaMail ...
这个实例将向我们展示如何使用JavaMail API在Java中实现邮件发送功能。以下是详细的步骤和相关知识点: 1. **JavaMail API简介**:JavaMail API是Java平台上的标准邮件服务接口,它提供了一系列类和接口,允许开发...
JavaMail邮件系统的设计与实现是基于Java编程语言的,它利用了JavaMail API来处理电子邮件的发送、接收等任务。JavaMail API是一个开源的、跨平台的库,它提供了与各种邮件服务器通信的能力,支持SMTP(简单邮件传输...
下面将详细介绍JavaMail邮件发送的相关知识点。 首先,JavaMail的核心组件是`javax.mail`和`javax.mail.internet`这两个包。它们提供了发送邮件所需的类和接口。例如,`Session`代表邮件会话,`Message`用于构建...