gpt4 book ai didi

java - 在 ColdFusion 中以编程方式验证邮件服务器连接

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:11:40 26 4
gpt4 key购买 nike

我正在使用自定义 SMTP 服务器,并希望在用户输入他自己的服务器凭据时验证连接。

与 Adob​​e CF 和 Railo 在添加邮件服务器时允许执行的检查类型完全相同。

当然,这不能保证交付 会正常工作,但至少要检查输入的服务器/用户名/密码是否有效。

我可以看到一种棘手的方法:尝试使用 cfmail 发送电子邮件并检查邮件日志。但我相信它可以做得更优雅。

标准 ACF/Railo 发行版是否有任何 Java 库可以帮助我?我将如何使用它们?高度赞赏示例。

提前致谢。

编辑:

请不要与存在的 Java 标记混淆。 CFML 中需要的解决方案。尽管它可以使用一些 Java 库(如果适用)。

最佳答案

我认为 sfussenegger 的想法是正确的。但是,与其使用自定义 validator ,不如通过 connect(..) 进行验证呢?仅使用 gmail 进行测试。但它似乎工作。

编辑: 我成功地使用 CF9 和 OBD 测试了这个。不幸的是,我在 Railo 上运气不佳……真可惜。

编辑:更新以添加缺少的“mail.smtp.auth”属性。它现在也应该可以与 Railo 一起正常工作。

    //Java Version
int port = 587;
String host = "smtp.gmail.com";
String user = "username@gmail.com";
String pwd = "email password";

try {
Properties props = new Properties();
// required for gmail
props.put("mail.smtp.starttls.enable","true");
props.put("mail.smtp.auth", "true");
// or use getDefaultInstance instance if desired...
Session session = Session.getInstance(props, null);
Transport transport = session.getTransport("smtp");
transport.connect(host, port, user, pwd);
transport.close();
System.out.println("success");
}
catch(AuthenticationFailedException e) {
System.out.println("AuthenticationFailedException - for authentication failures");
e.printStackTrace();
}
catch(MessagingException e) {
System.out.println("for other failures");
e.printStackTrace();
}



<cfscript>
//CF Version
port = 587;
host = "smtp.gmail.com";
user = "username@gmail.com";
pwd = "email password";

try {
props = createObject("java", "java.util.Properties").init();
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.auth", "true");
// or use getDefaultInstance instance if desired...
mailSession = createObject("java", "javax.mail.Session").getInstance(props, javacast("null", ""));
transport = mailSession.getTransport("smtp");
transport.connect(host, port, user, pwd);
transport.close();
WriteOutput("success");
}
//for authentication failures
catch(javax.mail.AuthenticationFailedException e) {
WriteOutput("Error: "& e.type &" ** "& e.message);
}
// for other failures
catch(javax.mail.MessagingException e) {
WriteOutput("Error: "& e.type &" ** "& e.message);
}
</cfscript>

关于java - 在 ColdFusion 中以编程方式验证邮件服务器连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2689177/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com