星期一, 1月 02, 2012

AWS SES 與 Postfix 的配合...

官方論壇上面沒找到比較好的方法,於是 trace ses-send-email.pl 之後找到一些方法可以用。

ses-send-email.pl 寫的 helper 中,規定寄給多個使用者必須使用「逗號」隔開:

ses-send-email.pl [--help] [-e URL] [-k FILE] [--verbose] -r [-f FROM_EMAIL] [TO_EMAIL[,TO_EMAIL]...]

但實際 trace 後可以發現除了逗號外也可以接受空白,但是必須在「一個參數」內 (Perl 會用 regex 切開),但是 Postfix 所丟出來的 $recipient 會是多個參數,而且無法調整 quote,所以得用一個 shell script 將傳入參數包起來:

#!/bin/sh
SENDER="$1"
shift
/usr/local/bin/ses-send-email.pl -k /usr/local/etc/aws_creditentials -r -f "$SENDER" "$*"

再來是修正 Postfix 的 master.cf,改吃 shell script:

awsses     unix  -       n       n       -       1       pipe    flags=RX user=www argv=/usr/local/bin/awsses-wrapper.sh $sender $recipient
這樣在寄給多個使用者的時候才會正常...

2 則留言:

xdite 提到...

官網的東西根本不能用啊...

clkao 提到...

ses 已經有提供 sasl-authed smtp gateway 了 似乎比較沒那麼痛苦
http://docs.amazonwebservices.com/ses/latest/DeveloperGuide/SMTP.MTAs.Postfix.html