hdknr’s posterous

 
Filed under

verp

 

VERP(Variable Envelop Return Paths)

Variable envelope return paths (VERPs) completely eliminate this problem _right now_. They automatically and reliably identify the subscription address relevant to each bounce message. They provide the address in a form that is trivial for automated bounce handlers to parse. They require support from the local mailer, but they do not require support from any other hosts.

Filed under  //   VERP  

Comments [0]

Postfix:VERPって知っていますか?

このPostfixのVERPの機能で説明すれば、

user@domain へメールを送りたいときに、このReturn-Pathには owner-listname+user=domain@origin のようなメールアドレスにすると説明には書いてあります。
そう、Return-Pathに送り先の情報が隠れているのです。

これで、user@domainにメールが届かない場合には、owner-listname+user=domain@origin がメールを受け取るので、そのメールアドレスを見れば、だれ宛のメールがエラーなのかわかるというわけです。

ちなみに、通常のメルマガではこんな簡単なふうにはしないでしょう。
たいてい、何やら暗号らしきアルファベットやら、数字やらがあるとおもいますが、これが送り主のみ知っている内部のユーザ識別IDというわけです。

ただ、こういった機能がPostfixにはデフォルトであるのですね。びっくりです。

ただし、この機能は使わないほうがいいですよ。
携帯とかのメールアドレスで最大までつける人がいるんですよ。
そしたら、そのメールアドレスにほかの情報をつけるんで、最大をこえますよね。
そのせいでメールが送れなくなることがあるんです。

エラーを追跡するための情報が原因でエラーになるなんてしゃれにならないですからね。

Filed under  //   postfix   VERP  

Comments [0]

Postfix:VERPって知っていますか?

今回はメールヘッダの部分で、Return-Pathという項目についてです。こちら、メールを配信して、エラーとなった場合などにそのメールアドレスに返事を返すためのメールアドレスです。ではメールを書くときにFromなどでもエラーが帰ってくるのですが、これはFromとこのReturn-Pathが同じようにしているだけなのです。基本的にエラーはこのReturn-Pathに帰るのです。

メルマガなどでメールを送るときには、このReturn-PathのメールアドレスとFromのメールアドレスを違ったものにします。

つまり、機械的なエラーはReturn-Pathに帰り、返事はFromというようにするのです。
こうするのは、機械的なエラーを自動的に処理したいからなのです。

Filed under  //   postfix   VERP  

Comments [0]

VERP形式でメールを送信する - スコトプリゴニエフスク通信

Djangoならば、django.core.SMTPConnectionの_sendメソッドをオーバーライドしたクラスを定義し、django.core.EmailMessageクラスのコンストラクタで、このクラスのインスタンスを渡してやれば、同様のことができるはずだが、もっと上手いデザインができるはず。こういうことを提案している人はいないのだろうか?

その他にも、Djangoのメール送信周りはヘッダーのFromとエンベロープFromが同一になってしまうという欠点があり、微妙に使いにくい。

Filed under  //   mail   postfix   Python   VERP  

Comments [0]

VERP形式でメールを送信する - スコトプリゴニエフスク通信

Postfix2.3を使ってテストしていて、"5.5.4 Unsupported option: XVERP"と言われて結構はまったが、いろいろなサイトを調べて、/etc/postfix/mail.cfにsmtpd_authorized_verp_clientsを設定しなくてはいけないということに気がついた。

smtpd_authorized_verp_clients = $mynetworks

Filed under  //   postfix   Python   VERP  

Comments [0]