在AEM 6.4(服务包7)中,如果SMTP邮件服务无法工作并且邮件服务配置无效,您可以尝试以下解决方法:
检查AEM的配置文件:打开路径/apps/system/config/org.apache.sling.mail.impl.SMTPServer.cfg,确保配置文件中的SMTP服务器相关配置正确。例如,确保smtp.server属性设置为正确的SMTP服务器地址,smtp.user属性设置为正确的用户名,smtp.password属性设置为正确的密码等。
检查AEM的日志文件:打开路径/crx-quickstart/logs/error.log,查找与邮件服务相关的错误消息。根据错误消息来排查问题并解决。
检查AEM的组件配置:打开路径/system/console/configMgr,搜索"邮件"或"SMTP"关键字,找到与邮件服务相关的组件配置。确保配置中的SMTP服务器地址、用户名、密码等信息正确。
检查AEM的网络连接:确保AEM服务器可以访问到SMTP服务器。尝试使用telnet命令测试连接SMTP服务器的端口。例如,运行telnet smtp.server.com 25来测试与SMTP服务器的连接。
以下是一个示例代码片段,展示如何在AEM中使用Java来发送SMTP邮件:
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;
public class EmailSender {
    public void sendEmail(String recipient, String subject, String message) throws EmailException {
        SimpleEmail email = new SimpleEmail();
        email.setHostName("smtp.server.com");
        email.setSmtpPort(25);
        email.setAuthentication("username", "password");
        email.setStartTLSEnabled(true);
        email.setFrom("sender@example.com");
        email.addTo(recipient);
        email.setSubject(subject);
        email.setMsg(message);
        email.send();
    }
}
您可以在自己的代码中使用以上示例代码来发送SMTP邮件。请确保将示例代码中的SMTP服务器地址、用户名、密码、发件人地址等信息替换为您自己的配置。