Informatica中mailx发邮件脚本执行无效果(Linux下正常)求助
以下是针对性的排查步骤:
检查环境变量差异
Informatica服务通常以专用用户(如infaservice)运行,该用户的环境变量和你直接执行命令的用户可能不一致。可以在会话成功后命令中添加环境变量输出命令,对比两者差异:# 在Informatica中执行的命令 env > /tmp/infa_env.txt && echo "Test email body" | mailx -s "Subject" vinay@informatica.com然后切换到你自己的用户执行
env > /tmp/local_env.txt,对比两个文件中的PATH、MAIL、SMTP相关变量,确保mailx的路径和邮件配置一致。添加mailx详细日志
在命令中加入-v参数开启 verbose 模式,将输出重定向到日志文件,查看邮件发送过程中的具体错误:echo "Test email body" | mailx -v -s "Subject" vinay@informatica.com > /tmp/mailx_infa.log 2>&1查看日志内容,重点关注SMTP连接、认证、邮件转发的相关信息,比如是否出现"Connection refused"或认证失败的提示。
验证命令路径与权限
确保Informatica调用的是你本地测试可用的mailx版本,使用绝对路径执行命令:echo "Test email body" | /usr/bin/mailx -s "Subject" vinay@informatica.com同时检查Informatica运行用户是否有权限访问mailx配置文件(如
/etc/mail.rc),以及是否能连接SMTP服务器(可通过telnet smtp_server port测试,需切换到该用户执行)。检查本地邮件队列
切换到Informatica运行用户,执行mailq命令查看本地邮件队列,确认邮件是否被滞留在队列中未转发。如果队列中有积压,检查邮件服务(如postfix、sendmail)是否正常运行,或是否存在配置错误。排查邮件过滤与投递问题
检查收件方的垃圾邮件文件夹,确认邮件是否被误判为垃圾邮件。同时查看服务器的邮件日志(如/var/log/maillog或/var/log/mail.log),追踪邮件从发送到投递的完整流程,看是否在转发环节被拦截。
内容的提问来源于stack exchange,提问作者vinay kumar

