2010年 10月 の投稿一覧

Postfixでメールサーバー設定

root宛てのメールをgmailに転送して読めるようにする。

Postfixインストール

yumでインストールする。
※rootもしくはsudoで作業する

yum install postfix

Postfixの設定

main.cfの設定


#取得したドメイン名(DNSで名前解決できるホスト名)
#myhostname = host.domain.tld
#myhostname = virtual.domain.tld
myhostname = example.net


#ドメイン名
#mydomain = domain.tld
mydomain = example.com


# メール送信の設定
# メールの送信元を示す
#myorigin = $myhostname
#myorigin = $mydomain
myorigin = $myhostname


#メール受信の設定
#メールを受け取る範囲を指定する。内部からのみ許可。
#inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = localhost
inet_interfaces = $myhostname, localhost


#自ホストが最終目的地であるドメイン名
#mydestination = $myhostname, localhost.$mydomain, localhost
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
#       mail.$mydomain, www.$mydomain, ftp.$mydomain
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain


#メールBOXの形式を指定
#home_mailbox = Mailbox
home_mailbox = Maildir/

※メールBOXの形式についてはこちらが参考になりました。

転送設定

	
vi /etc/aliases

# Person who should get root's mail
#root:          marc
#転送先のメールアドレスを指定
root:           example_xxxx@gmail.com

設定を反映させる。

newaliases

サービスを起動する。

/etc/init.d/postfix start

自動起動をonにする。

	
chkconfig postfix on

テスト

testメールを送ってみる。

mail -s "Subject:test-mail" root

Enterを押して、本文を入力

これはテストメールです。
→Ctrl-Dを押す
Cc:
→Enterを押す

gmailにメールが転送されていれば完了。

PHPのarray_mergeは良い

array_margeは便利だと思う。

$attributes = array(
    'var1' => 'aaa',
    'var3' => 'bbb',
);
$defaults = array(
    'var1' => null,
    'var2' => null,
    'var3' => '-',
    'var4' => '-',
    'var5' => '-',
);
$attributes = array_merge($defaults, $attributes);

echo '<PRE>';
print_r($attributes);
echo '</PRE>';

実行結果↓

Array
(
    [var1] => aaa
    [var2] => 
    [var3] => bbb
    [var4] => -
    [var5] => -
)

配列にデフォルト設定するとき良く使う。

ちなみに、配列のキーの差分を取得するarray_diff_keyも便利です。

$attributes = array(
    'var1' => 'aaa',
    'var3' => 'bbb',
    'var6' => 'ccc',
);
$defaults = array(
    'var1' => null,
    'var2' => null,
    'var3' => '-',
    'var4' => '-',
    'var5' => '-',
);

$attributes = array_diff_key($attributes, $defaults);

echo '<PRE>';
print_r($attributes);
echo '</PRE>';

実行結果↓

Array
(
    [var6] => ccc
)

PHPを使い始めてそろそろ1年・・・

GETパラメーターでURLを送りたい

普通に

<a href="/xxx/?url=http://aaa.com/">リンク</a>

で良いんだけど渡したいURLの中にさらにパラメーターが複数ある場合

<a href="/xxx/?url=http://aaa.com/?id=1&var=2">リンク</a>

こうすると

url = http://aaa.com/?id=1
var = 2

みたいになってしまうので

<a href="/xxx/?url=http://aaa.com/?id=1%26var=2">リンク</a>

とすると良いよ。

html_select_date のメモ

{html_select_date prefix='' time=$date|default:'--' field_array=date field_order=YMD month_format='%m' end_year='+1' year_empty='' month_empty='' day_empty='' year_extra="id=y"|cat:$id month_extra="id=m"|cat:$id day_extra="id=d"|cat:$id}