使用Oracle APEX_MAIL发送邮件未收到,咨询配置是否存在遗漏
嘿,我帮你梳理几个Apex Mail配置中容易遗漏的关键点,结合你的截图来定位问题:
先确认SMTP服务器的连通性
得保证Salesforce能正常访问你填的SMTP服务器(比如截图里的smtp.xxx.com)。不少企业的防火墙会拦截Salesforce的外部请求,你可以找IT团队确认下,是否允许Salesforce的IP段访问这个SMTP端口(常见的是25、465或587)。核对SMTP认证信息
仔细检查用户名和密码有没有输错,大小写、特殊字符都要对应上。如果你的SMTP服务器要求加密传输,别忘了确认截图里的"Require TLS"选项是否正确勾选——有些服务器强制TLS/SSL,没开的话直接会被拒绝。检查邮件发送限额
Salesforce对Apex Mail有每日发送上限,尤其是试用版或免费版限额很低。你可以去Setup > Email > Deliverability里看看,是不是已经达到当天的发送额度了。验证发件人地址的合法性
你配置的发件邮箱(xxx@xxx.com)得是Salesforce认可的,要么是经过验证的组织邮箱,要么属于你的域名。有些SMTP服务器会直接拒绝未授权的发件人地址,这也会导致邮件发不出去。查看邮件日志找具体错误
这是最直接的排查方法!去Setup > Email > Email Log Files生成最近的邮件日志,里面会明确显示错误原因——比如认证失败、服务器拒绝、DNS解析出错等等,一看就知道问题出在哪。用最简代码测试排除逻辑问题
有时候可能不是配置的锅,而是代码逻辑有问题。你可以试试这段极简的测试代码:Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage(); String[] toAddresses = new String[] {'你的测试邮箱地址'}; mail.setToAddresses(toAddresses); mail.setSubject('Apex Mail测试'); mail.setPlainTextBody('这是一封测试邮件,用来验证发送功能'); Messaging.sendEmail(new Messaging.SingleEmailMessage[] {mail});执行后再去日志里看有没有报错,能快速区分是配置问题还是代码问题。
内容的提问来源于stack exchange,提问作者Phanny

