EC2でSMTPサーバを立ち上げたが、トレンドマイクロのブロックリストに載せられてメールが拒否される。

GoogleさんがSMTPサーバを貸してくれなくなったので、仕方なくEC2でSMTPサーバを立ち上げました。

しばらく運用していたらユーザから、メールが戻ってきてしまう、という指摘をもらいました。

戻ってきたメールには以下のようなメッセージが
unavailable; Client host[xxx.xxx.xxx.xxx] blocked using TrendMicro RBL+

どうやら立ち上げたSMTPサーバのアドレスがトレンドマイクロさんのブロックリストに載っていて、メールがブロックされているようだ。

https://ers.trendmicro.com/reputations

でSMTPサーバのIPアドレスを見てみると Reputation: Bad だそうで、このメールサーバからのメールは拒否される。

これは正当なメールサーバだからリストから外してよ、とRequestを送ってみたが

xxx.xxx.xx.xxx is listed on our Dynamic User List (DUL) because
Amazon has told us that this is not a static IP address.

とのことで、 Staticアドレスじゃないのでダメ、アマゾンに以下のお願いをしてください。とのこと

1) properly setup an rDNS for this IP to reference static
2) update us with the latest list

1) は以下のフォームからリクエストできるらしい。

https://portal.aws.amazon.com/gp/aws/html-forms-controller/contactus/ec2-email-limit-rdns-request

このページで設定をお願いしてみる。

Use Case Descriptionに使い方の説明。(use as a smtp serverみたいな)
Elastic IP Address 1にSMTPサーバのIPアドレス(xxx.xxx.xxx.xxxみたいな)
Reverse DNS Record for EIP 1にSMTPサーバのドメイン名(smtp.example.comみたいな)

以上のような情報でリクエストすると

Request to Remove Email Sending Limitations Received
Thank you for submitting your request.
It is our intention to meet your needs.
We will review your use case and normally respond to requests within 2-3 business days.
検討するからちょっと待って。だいたい2~3営業日中には回答します。とのこと。

数時間後、アマゾンから
We have configured the reverse DNS record you requested.
ご所望の設定終わったよ。というメールが届く。

nslookup xxx.xxx.xxx.xxx
で確認してみると、おぉ、ドメインが登録されている。

しかし、この時点で再度

https://ers.trendmicro.com/reputations

を見てみると、まだ Reputation: Bad のままである。

少し待ってみよう。。。

5時間ぐらい待ってみたが Reputation は変わっていないので、再度Trend Microに以下のようなRequestを送ってみる。

Amazon has properly setup an rDNS for this IP.
Could you please remove this IP from the blocked list?

しかし、数分後に一回目と同じ内容(アマゾンにお願いしてください)のメールが届く。
どうやら Trend Micro は Amazon の IP アドレスで削除依頼がくると定型の文章で返信しているようだ。

仕方がないのでしばらく待つことにする。。。

翌日、確認してみるが Reputation : Bad のまま。。。

2日後、確認したところ Reputation : Unlisted in the spam sender list になっていました!

めでたしめでたし。

 

PHP で複数ファイルのアップロード処理を書いたが20個しかアップロードできない。

最近のブラウザだと、input タグに multiple 属性をつけると、ひとつのタグで複数のファイルをアップロードすることができる

<input type=”file” name=”files[]” multiple>

こんな感じで簡単。

しかし、調子に乗って30個ぐらいのファイルを一度にアップしようとしたら、一部のファイルしかアップされませんでした。

数えてみるとちょど20個で、それ以降のファイルは取得できない。

調べてみたところ、やっぱり制限がありました。

デフォルトでは20個のようですが、php.ini に max_file_uploads を追加してあげれば制限値を変えられるようです。

私の環境では /etc/php.ini に max_file_uploads = 100 を追加したら100個までアップロードできるようになりました。

変えられるからといってあまり大きい値にするのもどうかと思うので、運用を考えて必要最小限の値にしておきましょう。

php.ini を変更したらWebサーバの再起動も忘れずに。