`
marb
  • 浏览: 425632 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

TLS/SSL使用javamail

    博客分类:
  • JAVA
 
阅读更多
// get the mail configuration options
String mailHost     = servletConfig.getServletContext().getInitParameter( "mailHost" );
String mailTo       = servletConfig.getServletContext().getInitParameter( "mailTo" );
String mailFrom     = servletConfig.getServletContext().getInitParameter( "mailFrom" );
String mailUser     = servletConfig.getServletContext().getInitParameter( "mailUser" );
String mailPassword = servletConfig.getServletContext().getInitParameter( "mailPassword" );
String mailTls      = servletConfig.getServletContext().getInitParameter( "mailTls" );
String mailSsl      = servletConfig.getServletContext().getInitParameter( "mailSsl" );
String mailPort     = servletConfig.getServletContext().getInitParameter( "mailPort" );
String mailDebug    = servletConfig.getServletContext().getInitParameter( "mailDebug" );
 
// check on the parameters
if (mailHost == null || mailTo == null || mailFrom == null ) {
   throw new ServletException( "Unable to get mail init parameters" );
}
 
// Build the message
StringBuilder message = new StringBuilder( "Start messagen" );
 
// add the rest of the message
message.apppend( "line by line construct the message" );
 
// set the base properties for sending email
Properties mailProperties = System.getProperties();
mailProperties.put( "mail.transport.protocol" , "smtp" );
mailProperties.put( "mail.smtp.host" , mailHost);
 
// check to see if we need to use a non standard port
if (mailPort != null ) {
   mailProperties.put( "mail.smtp.port" , mailPort);
}
 
// check to see if we need to use SSL
if (mailSsl != null ) {
   mailProperties.put( "mail.smtp.ssl.enable" , "true" );
   mailProperties.put( "mail.smtp.ssl.trust" , "*" );
 
   if (mailPort != null ) {
     mailProperties.put( "mail.smtp.socketFactory.port" , mailPort);
   } else {
     // assume default standard port for SSL SMTP
     mailProperties.put( "mail.smtp.socketFactory.port" , "465" );
   }
 
   mailProperties.put( "mail.smtp.socketFactory.class" , "javax.net.ssl.SSLSocketFactory" );
   mailProperties.put( "mail.smtp.socketFactory.fallback" , "false" );
}
 
// check to see if we need to output debug messages
if (mailDebug != null && mailDebug.equals( "yes" )) {
   mailProperties.put( "mail.debug" , "true" );
}
 
// do we need to use TLS?
if (mailTls != null && mailTls.equals( "yes" )) {
   mailProperties.put( "mail.smtp.starttls.enable" , "true" );
}
 
// start the email session
Session mailSession;
 
// do we need to do authentication
if (mailUser != null ) {
   mailProperties.put( "mail.smtp.auth" , true );
   mailSession = Session.getInstance(mailProperties, new SMTPAuthenticator(mailUser, mailPassword));
} else {
   mailSession = Session.getInstance(mailProperties, null );
}
 
try {
   // construct the message
   Message mailMessage = new MimeMessage(mailSession); // base object
   mailMessage.setFrom( new InternetAddress(mailFrom)); // set from address
   mailMessage.setRecipients(Message.RecipientType.TO, InternetAddress.parse(mailTo, false )); // set to address
   mailMessage.setSubject( "Email subject" ); // subject
   mailMessage.setText(message.toString()); // body of the message
 
   // add additional headers
   mailMessage.setHeader( "X-Mailer" , "JavaMail" );
   mailMessage.setSentDate( new Date());
 
   // send the message
   Transport.send(mailMessage);
 
} catch (javax.mail.internet.AddressException ex) {
   throw new ServletException( "Unable to prepare mail message" , ex);
} catch (javax.mail.MessagingException ex) {
   throw new ServletException( "Unable to send mail message" , ex);
}
分享到:
评论

相关推荐

    JavaMail配置SSL服务器及安装证书

    配置JavaMail与SSL(Secure Socket Layer)服务器配合使用,是为了确保邮件通信的安全性,防止数据在传输过程中被窃取或篡改。SSL提供了加密机制,使得网络通信能够安全进行。在此过程中,安装和信任服务器证书是至...

    java使用javaMail发送邮件

    JavaMail 是一个强大的开源库,它为Java开发者提供了一套完整的API来处理电子邮件的发送...记住,为了确保邮件的稳定发送,需要根据实际的邮件服务器配置调整代码,比如是否使用TLS/SSL,以及相应的端口号和认证方式。

    关于用javamail发送邮件时,由于邮件服务器要SSL,解决办法

    在尝试使用JavaMail发送邮件时,如果邮件服务器要求使用SSL(Secure Socket Layer)或TLS(Transport Layer Security)协议来确保通信安全,开发者可能会遇到一些挑战。本文将深入探讨如何解决这一问题,主要基于...

    通过TLS发送邮件

    2. **建立连接**:使用编程语言提供的库(如Python的smtplib或Java的JavaMail API)建立到SMTP服务器的连接。 3. **启动TLS/SSL**:在连接建立后,请求服务器开启TLS安全层,这一步骤称为“升级连接”。 4. **身份...

    Android中使用JavaMail发送邮件

    在Android中使用JavaMail,我们需要以下几个关键步骤: 1. 获取必要的库文件: 首先,你需要从http://code.google.com/p/javamail-android/下载`additionnal.jar`、`mail.jar`和`activation.jar`这三个库文件。...

    Android使用JavaMail开发邮箱最新jar包集合

    4. **SSL/TLS支持**:大多数现代邮件服务器使用SSL或TLS加密连接,因此需要确保JavaMail配置支持这些安全协议,可能需要设置额外的属性,如`mail.smtp.starttls.enable`。 5. **错误处理**:邮件操作可能会遇到各种...

    javamail收发邮件加密和不加密

    - 对于更高级别的安全需求,可以使用SMTP的SSL/TLS模式,这需要在连接开始时就使用加密通道。JavaMail通过`mail.smtp.socketFactory.class`和`mail.smtp.socketFactory.port`属性实现此功能。 6. **证书与信任管理...

    javamail使用的jar包

    8. **SSL/TLS 安全连接**: JavaMail 支持 SSL(Secure Socket Layer)和 TLS(Transport Layer Security)加密,以确保邮件通信的安全性。 9. **MIME 类**: 用于处理多部分消息,比如包含文本和附件的邮件,`...

    使用javaMail发送邮件

    此外,对于SSL/TLS安全连接,还需要设置相应的属性,如`mail.smtp.starttls.enable`。 JavaMail还支持更复杂的功能,如HTML邮件、多部分邮件、使用IMAP/POP3接收邮件等。开发者可以根据具体需求选择相应的API来实现...

    javamail_test_QQmail

    对于QQ邮箱,SMTP服务器通常是smtp.qq.com,而端口可能是465或587,后者需要开启TLS/SSL加密。 2. **Session对象**:使用Properties配置创建Session对象,它是整个邮件操作的上下文。Session可以设置为全局单例,...

    JavaMail API Design Specification

    通过使用TLS/SSL加密、正确处理认证信息,以及合理设置连接超时和缓冲区大小,可以提高应用的安全性和效率。 总结,JavaMail API是Java开发人员处理邮件功能的必备工具。理解其设计规范,熟练运用Session、Message...

    java socket实现smtp发送邮件,支持SSL

    在实际应用中,建议使用JavaMail API提供的`Transport`类,它会自动处理SMTP连接的细节,包括SSL/TLS的设置,使得代码更加简洁和易于维护。在SocketSmtp这个示例项目中,应该包含了实现这一功能的具体代码,可以参考...

    JavaMail 1.6.0

    3. 安全性增强:包括对 TLS/SSL 的改进,增强了数据传输的安全性,防止中间人攻击。 4. 支持更多的邮件服务提供商:JavaMail 不断更新以适应不同的邮件服务器和提供商,包括Gmail、Yahoo、Outlook等。 5. 邮件附件...

    JavaMail收发Gmail邮件

    ### JavaMail收发Gmail邮件知识点详解 ...通过以上步骤,我们可以使用JavaMail实现对Gmail邮件的收发功能,并且通过SSL加密技术确保了数据的安全传输。这对于开发涉及邮件处理的应用程序非常有用。

    E-mail客戶端程式碼以及相關說明,使用javamail。開發環境NetBean

    本项目涉及的是使用JavaMail API开发的一个电子邮件客户端程序,开发环境为NetBeans。JavaMail API是一个强大的开源库,它允许开发者在Java应用程序中处理邮件协议,如SMTP(简单邮件传输协议)、POP3(邮局协议)和...

    用javamail实现邮件发送-完整源码-之前的那个资源变成50分一次下载了,所以重新上传一个,让大家能下载

    例如,某些服务器可能需要启用TLS/SSL,或者使用特定的身份验证方式。 总之,JavaMail是一个强大且灵活的库,可以帮助开发者轻松地在Java应用中实现邮件功能。提供的源码示例将帮助初学者快速理解并掌握JavaMail ...

    jsp写的收发邮件,使用javamail写的

    为了确保邮件的安全,许多邮件服务器要求使用SSL或TLS加密。JavaMail API提供了相应的配置选项来启用这些安全协议。同时,如果你的邮件服务器需要身份验证,可以在`Properties`对象中设置用户名和密码。 7. **异常...

    javaMail 25端口不能用

    3. **SSL/TLS安全策略**:如果你的邮件服务器要求使用SSL或TLS加密连接,你需要在JavaMail配置中启用这些选项。使用`smtps`协议替换`smtp`,并配置相应的SSL/TLS设置。 4. **代码配置错误**:检查你的JavaMail代码...

    javamail-1.4.7完整.rar

    4. **认证与安全**:支持SSL/TLS加密,进行安全的邮件通信,并可进行SMTP认证,如PLAIN、LOGIN或 XOAUTH2。 5. **邮件头操作**:设置和读取邮件头字段,如From、To、Cc、Bcc、Subject和Date。 6. **邮件存储**:使用...

Global site tag (gtag.js) - Google Analytics