mail-relay - UNIXからメールを送る際に、接続先SMTPサーバを指定したい
目的
以下の条件に合うように、
- 特定ドメインのアドレス(jp.example.com)宛のメールはサーバ1に送る。
- それ以外のメールはサーバ2に送る。
以下のメールサーバ(MTA)で、メール送信時のSMTP接続先を指定したい。
※なぜこの3つかというと、RHELが想定しているMTAがこの3つだから(参考: Product Documentation for Red Hat Enterprise Linux 8 - Red Hat Customer Portal; system-switch-mail コマンドで切り替え可能)。
結果
MTAの設定変更で実現できた。
MTA | 特定ドメインのアドレスの接続先 | それ以外のメールの接続先 |
---|---|---|
sendmail(FC使用) | mailertableファイルで設定 | sendmail.mcファイルのSMART_HOSTで設定 |
postfix | transportファイルで設定 | relayhostファイルで設定 |
exim | (未調査) | (未調査) |
注意:メールのFromかToどちらかが自社の有効なメールアドレスでないと、SMTPサーバがメールを無視してしまう場合があるので、気をつける。
これをlocalhostへの送信時に判別できるようにする方法も試みたが、うまくいかず断念。
signal-piping - SIGNALをpipe経由でハンドラからメインスレッドに渡す方法
目的
Linux上(UNIX全般)で「安全な」シグナル処理を実装したい。
本来シグナルハンドラでしてもよい処理は非常に限られており、実質は特定の型のグローバル変数操作と、非同期シグナルセーフ関数の呼び出ししか安全ではない(参考:UNIX上でのC++ソフトウェア設計の定石 (2) - memologue)。
この条件を守ったうえで、多用な処理をするシグナルハンドラを実装したい。
結果
別途、pipeとスレッド(メインスレッドでも良い)を用意して、
- シグナルハンドラ: 受け取ったシグナル情報をpipeにwriteするだけ
- 別スレッド: pipeをreadしてその後の処理を実行
という役割分担にすれば良い。
subversionを認証必須のプロキシ経由で使いたい
目的
id:taiyo:20080401#p1 を参照。
結果
リポジトリにhttpsでアクセスする場合のみ可能(httpアクセスは、プロキシサーバがPROPFINDメソッドを許可していないため、不可能)。
~/.subversion/servers に、以下の設定を記述する:
[groups] external = sssvn.jp, svn.ruby-lang.org [external] http-proxy-host = abcproxy.examlple.com http-proxy-port = 8080 http-proxy-username = 4000000 http-proxy-password = PassWord ssl-trust-default-ca = yes
ファイルのパーミッションも適切に。
※外部にあるリポジトリにしかアクセスしない場合は、"[global]"セクションに書いても良い。
gem(RubyGems)を認証必須のプロキシ経由で使いたい
目的
id:taiyo:20080401#p1 を参照。
結果
~/.gemrc に、以下の設定を記述する(大文字の箇所は記入例、各自で変えること):
http_proxy: http://4000000:PassWord@abcproxy.examlple.com:8080
※PassWordに英数字以外が含まれる場合はURLエンコードが必要
もちろん、~/.gemrc のパーミッションは 600(自分のみread/wriet可) にしておくこと。