javaMail,和 commons-email 错误Javax.mail.NoSuchProviderException: smtp

解决JavaEE环境下邮件发送冲突
本文介绍了解决在JavaEE环境下使用commons-email发送邮件时遇到的冲突问题。通过替换JavaMail包并修改myeclipse环境中的javaee.jar文件来避免冲突。

 

/**
 * @company:

 * @author:

 * @createtime: 2011-4-19 上午10:06:31

 * @description:

 * @version:

 */
public class SendEmail {

	public static boolean sendSimpleEmail()throws Exception{
		boolean flag = false ;
		Email email = new SimpleEmail();
		email.setHostName("smtp.gmail.com");
		email.setSmtpPort(587);
		email.setAuthenticator(new DefaultAuthenticator("username", "password"));
		email.setTLS(true);
		email.setFrom("username@gmail.com");
		email.setSubject("TestMail");
		email.setMsg("This is a test mail ... :-)");
		email.addTo("123456@qq.com");
		email.send();
		return flag;
	}
	public static void main(String[] args) {
		try {
			sendSimpleEmail();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

我用的是 commons-email-1.2 

 

邮件发送,报错了 javax.mail.NoSuchProviderException:smtp 网上查了一堆 说 tomcat myeclipse javaee5的包发送了冲突了,

 

解决办法 是 :

1)在oralce下载一个 JavaMail 包 http://www.oracle.com/technetwork/java/javamail/index-138643.html 下载JavaMail 1.4.4 

2)在 找到myeclipse环境中的javaee.jar 包,用winrar或者其他解压缩工具打开,删除mail跟activation包,因为javaee.jar中的mail与javamail冲突。 

 

 

 

 

 

javaMail的详细文档,都有以下多有类的详细信息: ACL Address AddressException AddressStringTerm AddressTerm AndTerm AuthenticationFailedException Authenticator BodyPart BodyTerm ByteArrayDataSource ComparisonTerm ConnectionAdapter ConnectionEvent ConnectionListener ContentDisposition ContentType DateTerm DeliveryStatus DispositionNotification FetchProfile FetchProfile.Item Flags Flags.Flag FlagTerm Folder FolderAdapter FolderClosedException FolderEvent FolderListener FolderNotFoundException FromStringTerm FromTerm Header HeaderTerm HeaderTokenizer HeaderTokenizer.Token IllegalWriteException IMAPFolder IMAPFolder.FetchProfileItem IMAPFolder.ProtocolCommand IMAPMessage IMAPSSLStore IMAPStore IntegerComparisonTerm InternetAddress InternetHeaders InternetHeaders.InternetHeader MailDateFormat MailEvent MailHandler MailSSLSocketFactory Message Message.RecipientType MessageAware MessageChangedEvent MessageChangedListener MessageContext MessageCountAdapter MessageCountEvent MessageCountListener MessageHeaders MessageIDTerm MessageNumberTerm MessageRemovedException MessagingException MethodNotSupportedException MimeBodyPart MimeMessage MimeMessage.RecipientType MimeMultipart MimePart MimePartDataSource MimeUtility Multipart MultipartDataSource MultipartReport NewsAddress NoSuchProviderException NotTerm OrTerm ParameterList ParseException Part PasswordAuthentication POP3Folder POP3Message POP3SSLStore POP3Store PreencodedMimeBodyPart Provider Provider.Type Quota Quota.Resource QuotaAwareStore ReadOnlyFolderException ReceivedDateTerm RecipientStringTerm RecipientTerm Report Rights Rights.Right SearchException SearchTerm SendFailedException SentDateTerm Service Session SharedByteArrayInputStream SharedFileInputStream SharedInputStream SizeTerm SMTPAddressFailedException SMTPAddressSucceededException SMTPMessage SMTPSendFailedException SMTPSSLTransport SMTPTransport Store StoreClosedException StoreEvent StoreListener StringTerm SubjectTerm Transport TransportAdapter TransportEvent TransportListener UIDFolder UIDFolder.FetchProfileItem URLName
Javamail 是 Java 邮件API,它允许你在 Java 应用程序中处理电子邮件。当你尝试使用它接收邮件时,如果遇到 `javax.mail.NoSuchProviderException` 的错误,通常是因为 JavaMail 能够识别的服务提供商(如邮件服务器、SMTP 或 IMAP)不存在或者配置不正确。 这个异常可能是由于以下几个原因: 1. **缺少必要的邮件服务提供商**:你需要在邮件客户端配置中指定一个有效的邮件服务提供者,例如 javax.mail.Session 类的默认 SMTP 服务器名称未设置或者配置有误。 ```java Properties props = new Properties(); props.put("mail.smtp.host", "your-smtp-server.example.com"); ``` 2. **第三方库冲突或版本问题**:检查是否有其他库已经注册了相同的邮件服务,这可能会导致冲突。确保使用的 Javamail 版本与其他依赖兼容。 3. **权限问题**:如果你的应用程序需要特定的权限才能访问邮件服务器,如SSL/TLS支持,确认它们已经被正确地启用。 4. **环境变量缺失**:有些情况下,邮件服务器地址需要从系统环境变量获取,比如 `javax.mail.URLName` 属性。检查相关环境变量是否配置正确。 5. **防火墙或网络限制**:确保应用程序可以从外部连接到邮件服务器,防火墙或其他网络规则可能阻止了连接。 解决这类问题的一般步骤包括检查配置、更新日志信息(如果有的话)、排查依赖冲突,并根据具体情况调整。如果你能提供更多关于你的代码片段错误的具体信息,我可以给出更具体的帮助。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值