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"
);
if
(mailHost ==
null
|| mailTo ==
null
|| mailFrom ==
null
) {
throw
new
ServletException(
"Unable to get mail init parameters"
);
}
StringBuilder message =
new
StringBuilder(
"Start messagen"
);
message.apppend(
"line by line construct the message"
);
Properties mailProperties = System.getProperties();
mailProperties.put(
"mail.transport.protocol"
,
"smtp"
);
mailProperties.put(
"mail.smtp.host"
, mailHost);
if
(mailPort !=
null
) {
mailProperties.put(
"mail.smtp.port"
, mailPort);
}
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
{
mailProperties.put(
"mail.smtp.socketFactory.port"
,
"465"
);
}
mailProperties.put(
"mail.smtp.socketFactory.class"
,
"javax.net.ssl.SSLSocketFactory"
);
mailProperties.put(
"mail.smtp.socketFactory.fallback"
,
"false"
);
}
if
(mailDebug !=
null
&& mailDebug.equals(
"yes"
)) {
mailProperties.put(
"mail.debug"
,
"true"
);
}
if
(mailTls !=
null
&& mailTls.equals(
"yes"
)) {
mailProperties.put(
"mail.smtp.starttls.enable"
,
"true"
);
}
Session mailSession;
if
(mailUser !=
null
) {
mailProperties.put(
"mail.smtp.auth"
,
true
);
mailSession = Session.getInstance(mailProperties,
new
SMTPAuthenticator(mailUser, mailPassword));
}
else
{
mailSession = Session.getInstance(mailProperties,
null
);
}
try
{
Message mailMessage =
new
MimeMessage(mailSession);
mailMessage.setFrom(
new
InternetAddress(mailFrom));
mailMessage.setRecipients(Message.RecipientType.TO, InternetAddress.parse(mailTo,
false
));
mailMessage.setSubject(
"Email subject"
);
mailMessage.setText(message.toString());
mailMessage.setHeader(
"X-Mailer"
,
"JavaMail"
);
mailMessage.setSentDate(
new
Date());
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(Secure Socket Layer)服务器配合使用,是为了确保邮件通信的安全性,防止数据在传输过程中被窃取或篡改。SSL提供了加密机制,使得网络通信能够安全进行。在此过程中,安装和信任服务器证书是至...
JavaMail 是一个强大的开源库,它为Java开发者提供了一套完整的API来处理电子邮件的发送...记住,为了确保邮件的稳定发送,需要根据实际的邮件服务器配置调整代码,比如是否使用TLS/SSL,以及相应的端口号和认证方式。
在尝试使用JavaMail发送邮件时,如果邮件服务器要求使用SSL(Secure Socket Layer)或TLS(Transport Layer Security)协议来确保通信安全,开发者可能会遇到一些挑战。本文将深入探讨如何解决这一问题,主要基于...
2. **建立连接**:使用编程语言提供的库(如Python的smtplib或Java的JavaMail API)建立到SMTP服务器的连接。 3. **启动TLS/SSL**:在连接建立后,请求服务器开启TLS安全层,这一步骤称为“升级连接”。 4. **身份...
在Android中使用JavaMail,我们需要以下几个关键步骤: 1. 获取必要的库文件: 首先,你需要从http://code.google.com/p/javamail-android/下载`additionnal.jar`、`mail.jar`和`activation.jar`这三个库文件。...
4. **SSL/TLS支持**:大多数现代邮件服务器使用SSL或TLS加密连接,因此需要确保JavaMail配置支持这些安全协议,可能需要设置额外的属性,如`mail.smtp.starttls.enable`。 5. **错误处理**:邮件操作可能会遇到各种...
- 对于更高级别的安全需求,可以使用SMTP的SSL/TLS模式,这需要在连接开始时就使用加密通道。JavaMail通过`mail.smtp.socketFactory.class`和`mail.smtp.socketFactory.port`属性实现此功能。 6. **证书与信任管理...
8. **SSL/TLS 安全连接**: JavaMail 支持 SSL(Secure Socket Layer)和 TLS(Transport Layer Security)加密,以确保邮件通信的安全性。 9. **MIME 类**: 用于处理多部分消息,比如包含文本和附件的邮件,`...
此外,对于SSL/TLS安全连接,还需要设置相应的属性,如`mail.smtp.starttls.enable`。 JavaMail还支持更复杂的功能,如HTML邮件、多部分邮件、使用IMAP/POP3接收邮件等。开发者可以根据具体需求选择相应的API来实现...
对于QQ邮箱,SMTP服务器通常是smtp.qq.com,而端口可能是465或587,后者需要开启TLS/SSL加密。 2. **Session对象**:使用Properties配置创建Session对象,它是整个邮件操作的上下文。Session可以设置为全局单例,...
通过使用TLS/SSL加密、正确处理认证信息,以及合理设置连接超时和缓冲区大小,可以提高应用的安全性和效率。 总结,JavaMail API是Java开发人员处理邮件功能的必备工具。理解其设计规范,熟练运用Session、Message...
在实际应用中,建议使用JavaMail API提供的`Transport`类,它会自动处理SMTP连接的细节,包括SSL/TLS的设置,使得代码更加简洁和易于维护。在SocketSmtp这个示例项目中,应该包含了实现这一功能的具体代码,可以参考...
3. 安全性增强:包括对 TLS/SSL 的改进,增强了数据传输的安全性,防止中间人攻击。 4. 支持更多的邮件服务提供商:JavaMail 不断更新以适应不同的邮件服务器和提供商,包括Gmail、Yahoo、Outlook等。 5. 邮件附件...
### JavaMail收发Gmail邮件知识点详解 ...通过以上步骤,我们可以使用JavaMail实现对Gmail邮件的收发功能,并且通过SSL加密技术确保了数据的安全传输。这对于开发涉及邮件处理的应用程序非常有用。
本项目涉及的是使用JavaMail API开发的一个电子邮件客户端程序,开发环境为NetBeans。JavaMail API是一个强大的开源库,它允许开发者在Java应用程序中处理邮件协议,如SMTP(简单邮件传输协议)、POP3(邮局协议)和...
例如,某些服务器可能需要启用TLS/SSL,或者使用特定的身份验证方式。 总之,JavaMail是一个强大且灵活的库,可以帮助开发者轻松地在Java应用中实现邮件功能。提供的源码示例将帮助初学者快速理解并掌握JavaMail ...
为了确保邮件的安全,许多邮件服务器要求使用SSL或TLS加密。JavaMail API提供了相应的配置选项来启用这些安全协议。同时,如果你的邮件服务器需要身份验证,可以在`Properties`对象中设置用户名和密码。 7. **异常...
3. **SSL/TLS安全策略**:如果你的邮件服务器要求使用SSL或TLS加密连接,你需要在JavaMail配置中启用这些选项。使用`smtps`协议替换`smtp`,并配置相应的SSL/TLS设置。 4. **代码配置错误**:检查你的JavaMail代码...
4. **认证与安全**:支持SSL/TLS加密,进行安全的邮件通信,并可进行SMTP认证,如PLAIN、LOGIN或 XOAUTH2。 5. **邮件头操作**:设置和读取邮件头字段,如From、To、Cc、Bcc、Subject和Date。 6. **邮件存储**:使用...