[postfix-jp: 4400] ローカル配送の処理についての質問です。

Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

[postfix-jp: 4400] ローカル配送の処理についての質問です。

demandman009
初めまして、菊地と申します。

最近postfixを導入をしpostfix初心者なのですがpostfix(ローカル配送)の停止と再送部分について質問があります。
.forwardを利用してメール受信時にプログラム実行をするような機能を作成してみました。
(.forwardにプログラムパスを記載してそれが実行されるような形です)
プログラムに修正が入りデプロイが必要になるのですが、そういった場合デプロイ中にメールを受信した時
処理が異常終了することを危惧しているため、デプロイ時に下記のような手順を考えました。

メールを滞留させる→ソースのデプロイを行う→滞留したローカル配送を再送する→滞留の解除

上記のようなことを考えているのですが、ローカル配送を強引に停止滞留させて再配送させるようなことは可能でしょうか?
そもそもデプロイなど処理中の制御に際してもっと良い方法があれば教えていただきたいです。
正直なところ運用後のデプロイを全く考えずに作りきってしまったのでちょっと公開しています。
現在プログラム部分はphpを使っています。

_______________________________________________
Postfix-jp-list mailing list
[hidden email]
http://lists.osdn.me/mailman/listinfo/postfix-jp-list
Reply | Threaded
Open this post in threaded view
|

[postfix-jp: 4401] Re: ローカル配送の処理についての質問です。

SATOH Fumiyasu
On Tue, 29 Aug 2017 16:20:54 +0900,
[hidden email] wrote:
> 最近postfixを導入をしpostfix初心者なのですがpostfix(ローカル配送)の停止と再送部分について質問があります。
> .forwardを利用してメール受信時にプログラム実行をするような機能を作成してみました。
> (.forwardにプログラムパスを記載してそれが実行されるような形です)
> プログラムに修正が入りデプロイが必要になるのですが、そういった場合デプロイ中にメールを受信した時
> 処理が異常終了することを危惧しているため、デプロイ時に下記のような手順を考えました。
>
> メールを滞留させる→ソースのデプロイを行う→滞留したローカル配送を再送する→滞留の解除
>
> 上記のようなことを考えているのですが、ローカル配送を強引に停止滞留させて再配送させるようなことは可能でしょうか?

デプロイ中は以下のような .forward を置いておけばいいと思います。

```
"|exit 75"
```

.forward の入れ替えがアトミックになるように注意してください。
「75」は sysexits.h の以下より (私の手元の環境の場合)。

```
#define EX_TEMPFAIL 75 /* temp failure; user is invited to retry */
```

> そもそもデプロイなど処理中の制御に際してもっと良い方法があれば教えていただきたいです。
> 正直なところ運用後のデプロイを全く考えずに作りきってしまったのでちょっと公開しています。
> 現在プログラム部分はphpを使っています。

--
-- Name: SATOH Fumiyasu @ OSS Technology Corp. (fumiyas @ osstech co jp)
-- Business Home: http://www.OSSTech.co.jp/
-- GitHub Home: https://GitHub.com/fumiyas/
-- PGP Fingerprint: BBE1 A1C9 525A 292E 6729  CDEC ADC2 9DCA 5E1C CBCA

_______________________________________________
Postfix-jp-list mailing list
[hidden email]
http://lists.osdn.me/mailman/listinfo/postfix-jp-list
Reply | Threaded
Open this post in threaded view
|

[postfix-jp: 4402] Re: ローカル配送の処理についての質問です。

とみたまさひろ
In reply to this post by demandman009
On Tue, 29 Aug 2017 16:20:54 +0900 (JST)
[hidden email] wrote:

> 上記のようなことを考えているのですが、ローカル配送を強引に停止滞留させて再配送させるようなことは可能でしょうか?

defer_transports に記述した配送エージェントは明に sendmail -q 等を実行しない限りキューに滞留します。

    # postconf -e defer_transports=local
    〜何かの処理〜
    # postconf -e defer_transports=
    # sendmail -q

…みたいな感じでいけるんじゃないかと思います。

--
とみたまさひろ <[hidden email]>
http://twitter.com/tmtms
D68F 8F55 7F6C 5908 88EB  1EBA 25ED DEE7 BBE8 1752

_______________________________________________
Postfix-jp-list mailing list
[hidden email]
http://lists.osdn.me/mailman/listinfo/postfix-jp-list
Reply | Threaded
Open this post in threaded view
|

[postfix-jp: 4403] Re: ローカル配送の処理についての質問です。

demandman009
In reply to this post by SATOH Fumiyasu
ありがとうございます!
全く知らなかったので非常に勉強になります。
exit 75がメッセージの受信に失敗した場合に、sendmailの再配送キューにメッセージを格納します。
という内容なのであれば下記のようにデプロイ中に限らず、ずっと記載しておいた方がベターでしょうか?

都度アトミックな状態を担保するのが難しいです。
再配送キューにメッセージを格納ということは自動で再配送で時はなくコマンドで溜まっているキューを出す認識であっていますでしょうか?
.forward
"|/usr/local/bin/php /home/mail/scad/mail_oath_regist.php || exit 75"

----- Original Message -----
From: SATOH Fumiyasu <[hidden email]>
To: postfix-jp-list <[hidden email]>
Date: 2017/8/29, Tue 17:07
Subject: [postfix-jp: 4401] Re: ローカル配送の処理についての質問です。

On Tue, 29 Aug 2017 16:20:54 +0900,
[hidden email] wrote:
> 最近postfixを導入をしpostfix初心者なのですがpostfix(ローカル配送)の停止と再送部分について質問があります。
> .forwardを利用してメール受信時にプログラム実行をするような機能を作成してみました。
> (.forwardにプログラムパスを記載してそれが実行されるような形です)
> プログラムに修正が入りデプロイが必要になるのですが、そういった場合デプロイ中にメールを受信した時
> 処理が異常終了することを危惧しているため、デプロイ時に下記のような手順を考えました。
>
> メールを滞留させる→ソースのデプロイを行う→滞留したローカル配送を再送する→滞留の解除
>
> 上記のようなことを考えているのですが、ローカル配送を強引に停止滞留させて再配送させるようなことは可能でしょうか?

デプロイ中は以下のような .forward を置いておけばいいと思います。

```
"|exit 75"
```

.forward の入れ替えがアトミックになるように注意してください。
「75」は sysexits.h の以下より (私の手元の環境の場合)。

```
#define EX_TEMPFAIL    75    /* temp failure; user is invited to retry */
```

> そもそもデプロイなど処理中の制御に際してもっと良い方法があれば教えていただきたいです。
> 正直なところ運用後のデプロイを全く考えずに作りきってしまったのでちょっと公開しています。
> 現在プログラム部分はphpを使っています。

--
-- Name: SATOH Fumiyasu @ OSS Technology Corp. (fumiyas @ osstech co jp)
-- Business Home: http://www.OSSTech.co.jp/
-- GitHub Home: https://GitHub.com/fumiyas/
-- PGP Fingerprint: BBE1 A1C9 525A 292E 6729  CDEC ADC2 9DCA 5E1C CBCA

_______________________________________________
Postfix-jp-list mailing list
[hidden email]
http://lists.osdn.me/mailman/listinfo/postfix-jp-list



_______________________________________________
Postfix-jp-list mailing list
[hidden email]
http://lists.osdn.me/mailman/listinfo/postfix-jp-list