CentOS下WebLogic邮件服务配置指南
确保CentOS系统已安装JavaMail API(WebLogic依赖其处理邮件协议),可通过以下命令安装:
sudo yum install java-1.8.0-openjdk-devel
安装完成后,验证Java环境是否正常:java -version。
登录WebLogic控制台(http://<WebLogic_Admin_Host>:<WebLogic_Admin_Port>/console),导航至:
Domain Structure → Services → Mail Sessions。
MailSession,自定义但需便于识别);javax.mail.Session(标准邮件会话接口);mail/Session,应用程序将通过此名称查找会话);根据SMTP服务器类型(如Gmail、企业自收SMTP)设置以下关键属性(以Gmail SMTP为例):
mail.smtp.host:SMTP服务器地址(如smtp.gmail.com);mail.smtp.port:SMTP端口(如587,TLS加密端口);mail.smtp.auth:是否开启认证(true);mail.smtp.starttls.enable:是否启用TLS加密(true);mail.smtp.from:发件人邮箱地址(如your-email@gmail.com);mail.user:SMTP认证用户名(同发件人邮箱);mail.password:SMTP认证密码(若启用两步验证,需使用应用专用密码)。AdminServer或应用服务器实例);若应用程序使用Maven构建,在pom.xml中添加JavaMail依赖:
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version> <!-- 或更高兼容版本 -->
</dependency>
若未使用Maven,手动下载javax.mail.jar并放入应用程序的WEB-INF/lib目录。
通过JNDI查找WebLogic配置的邮件会话,发送测试邮件:
import javax.mail.*;
import javax.mail.internet.*;
import javax.naming.Context;
import javax.naming.InitialContext;
import java.util.Properties;
public class EmailSender {
public static void sendEmail(String to, String subject, String body) throws Exception {
// 1. 查找JNDI邮件会话
Context ctx = new InitialContext();
Session session = (Session) ctx.lookup("mail/Session"); // 与配置的JNDI Name一致
// 2. 构造邮件消息
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("your-email@gmail.com")); // 发件人(可选,会话属性已设置)
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
message.setSubject(subject);
message.setText(body); // 纯文本邮件,如需HTML可改为message.setContent(body, "text/html;charset=UTF-8")
// 3. 发送邮件
Transport.send(message);
System.out.println("Email sent successfully!");
}
public static void main(String[] args) {
try {
sendEmail("recipient@example.com", "Test Email from WebLogic", "This is a test email sent via WebLogic Mail Session.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
注意:代码中的mail/Session需与WebLogic配置的JNDI Name完全一致。
sudo firewall-cmd --add-port=587/tcp --permanent);mail.user和mail.password是否正确,若使用Gmail需开启“允许不够安全的应用”或使用应用专用密码;