Informatica及Mailx发送含多词名称收件人邮件的问题求助
解决Informatica中带空格邮箱地址的邮件发送问题
之前碰到过一模一样的坑,本质是带空格的邮箱地址在命令行解析和Informatica任务配置里被当成多个参数拆分了,给你分两个场景说具体解决办法:
一、Post-Session Succeed Command的处理方式
你的问题出在mailx命令里,带空格的邮箱地址没有被正确包裹,导致shell把空格当成参数分隔符,把Pizza and Pasta@mail.ru拆成了三个无效地址。需要给带空格的邮箱加上引号,同时要考虑Informatica对命令的转义处理:
正确的命令格式(二选一)
使用转义双引号:
echo "Test" | mailx -s "Loading of the report done" Pchernyakov@mail.ru \"Pizza and Pasta@mail.ru\"这里的
\"是告诉Informatica把双引号传递给底层shell,让shell识别这是一个完整的邮箱地址。使用单引号包裹双引号:
echo "Test" | mailx -s "Loading of the report done" Pchernyakov@mail.ru '"Pizza and Pasta@mail.ru"'单引号会让Informatica直接把内部的双引号传递给shell,同样能保证邮箱地址被当作一个整体。
验证步骤
先在Informatica所在的服务器上直接执行测试命令,确认mailx本身支持带空格的邮箱:
echo "Test" | mailx -s "Test Subject" Pchernyakov@mail.ru "Pizza and Pasta@mail.ru"
如果这个命令能成功发送邮件,说明问题确实是Informatica的命令转义导致的,用上面的转义格式即可解决。
二、Informatica Email Task的处理方式
在Email Task里直接写带空格的邮箱时,同样需要用双引号把整个邮箱地址包裹,并且用分号作为多个收件人的分隔符:
正确的收件人填写格式
Pchernyakov@mail.ru; "Pizza and Pasta@mail.ru"
注意要确保双引号是英文半角的,并且包裹住整个带空格的邮箱地址。
备选方案:使用Informatica用户组
如果上述方法还是有问题,可以把这个带空格的群组邮箱配置成Informatica的用户组:
- 进入Informatica Administrator,创建一个新用户组,把
Pizza and Pasta@mail.ru设为组的邮箱地址 - 在Email Task的收件人里直接选择这个用户组,避免手动输入带空格的地址,彻底绕过解析问题
内容的提问来源于stack exchange,提问作者letronas




