2014年7月25日金曜日

LinuxのMailコマンドで外部に送信失敗の時

今まで何度も何度も読み返してるのになぜスルーしてたのか分からない。
mailコマンドはMTAにメール配送を任せるので
たとえば
echo test | mail -s test hogehoge@hoge.com
とかして外部に送信しようとした場合
sendmailやpostfixなどMTAに送信依頼をする。
この時外に出ようとするメールは
「自分の所に届けるメールじゃない」と判断した際
MTAのデフォルト設定にも寄るが基本設定したドメインに
@以降を書き換える。
私の場合Centos6.5だったので必然的にPostfixがデフォルトだったので
main.cfとか一生懸命見直してはテストしてました。
だけどどうやってもMTAが「ユーザー名@localhost.localdomain」とかで
外に送信したがる。
myoriginとか確実に直ってるはずなのにである。

で、何が悪いのか色々なサイトを見て周るも
書かれていることは皆同じ。
どこが違う・・・・・。散々悩んでとあるサイトを見ていた時。
「CentOS7はデフォルトでPostfixになっています」の文字。
ん?
CentOS6だってそうじゃなかったっけ?
・・・・まさか

そう。まさかだったんです。

alternatives --config mta


2 プログラムがあり 'mta' を提供します。

  選択       コマンド
-----------------------------------------------
*+ 1           /usr/sbin/sendmail.sendmail
   2           /usr/sbin/sendmail.postfix

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:

!!!!!!
sendmailなんて入っていないがな!
すかさす2を選択。
そしてメールテスト・・・・・・。あっさりパス。
ふざけるなぁ!と叫んでおりました。はい。

みなさん。MTAは目的の物に確実に選択されているか確認してから設定してくださいね。

2014年6月18日水曜日

Hatena::Keywordの部分修正

どうもすいません。間違いを記載していたようです。
私の"2013/10/27現在のPlaggerに必要なモジュールの取得その2"で紹介している
スクリプトの中でHatena::Keywordの部分ですが
本体を修正する必要はありませんでした。ですので修正する箇所としては


---------------ここから---------------
# Hatena::Keyword には2つ修正するべき箇所がある。
# 1:POD内にあるeuc-jpの"’"の除去
# 2:utf8の使用および文字引渡し時のエンコード処理
cd /root
wget http://search.cpan.org/CPAN/authors/id/N/NA/NAOYA/Hatena-Keyword-0.05.tar.gz
tar xzvf Hatena-Keyword-0.05.tar.gz
cd Hatena-Keyword-0.05/lib/Hatena/
# euc-jpなPODをUTF-8に変換します。
/usr/bin/nkf -w Keyword.pm > Keyword.pm.utf8
# 下のアポストロフィの全角を半角にするために置換します
/bin/sed -e "s/’/'/g" Keyword.pm.utf8 > Keyword.pm.utf8.sed
# 元ファイル除去
rm -f Keyword.pm
# 中間ファイル除去
rm -f Keyword.pm.utf8
mv Keyword.pm.utf8.sed Keyword.pm
cat << "EOFA" > Keyword.patch 2>&1
--- Keyword.pm  2008-02-21 12:11:59.000000000 +0900
+++ Keyword.pm.new      2013-10-19 13:53:33.197136826 +0900
@@ -7,6 +7,7 @@
 use URI;
 use RPC::XML;
 use RPC::XML::Client;
+use utf8;

 our $VERSION = 0.05;

@@ -22,6 +23,7 @@
     my $body = shift or croak sprintf 'usage %s->extract($text)', $class;
     my $args = shift || {};
     $args->{mode} = 'lite';
+    utf8::encode($body);
     my $res = $class->_call_rpc_with_cache($body, $args)
         or $class->error($class->errstr);
     my @keywords = map { $class->_instance_from_rpcdata($_) }@{$res->{wordlist}};
EOFA
patch < Keyword.patch
rm -f Keyword.patch
cd /root
rm -f Hatena-Keyword-0.05.tar.gz
tar czvf Hatena-Keyword-0.05.tar.gz Hatena-Keyword-0.05
rm -fr Hatena-Keyword-0.05
$CPANM_CMD Hatena-Keyword-0.05.tar.gz
rm -f Hatena-Keyword-0.05.tar.gz
---------------ここまで---------------



---------------ここから---------------
# Hatena::Keyword には修正するべき箇所がある。
# POD内にあるeuc-jpの"’"の除去
cd /root
wget http://search.cpan.org/CPAN/authors/id/N/NA/NAOYA/Hatena-Keyword-0.05.tar.gz
tar xzvf Hatena-Keyword-0.05.tar.gz
cd Hatena-Keyword-0.05/lib/Hatena/
# euc-jpなPODをUTF-8に変換します。
/usr/bin/nkf -w Keyword.pm > Keyword.pm.utf8
# 下のアポストロフィの全角を半角にするために置換します
/bin/sed -e "s/’/'/g" Keyword.pm.utf8 > Keyword.pm.utf8.sed
# euc-jpに戻します。
/usr/bin/nkf -e Keyword.pm.utf8.sed > Keyword.pm.euc.sed
# 元ファイル除去
rm -f Keyword.pm
# 中間ファイル除去
rm -f Keyword.pm.utf8
rm -f Keyword.pm.utf8.sed
# ファイル名変更
mv Keyword.pm.euc.sed Keyword.pm
cd /root
rm -f Hatena-Keyword-0.05.tar.gz
tar czvf Hatena-Keyword-0.05.tar.gz Hatena-Keyword-0.05
rm -fr Hatena-Keyword-0.05
$CPANM_CMD Hatena-Keyword-0.05.tar.gz
rm -f Hatena-Keyword-0.05.tar.gz
---------------ここまで---------------

に修正願います。