モジュール小技
小技です。
子モジュールで属性(変数)をセットする部分がありました。
to_email => ['mail'],
from_mail => ['ruffy@kaizoku.co.jp']
from_mail => ['ruffy@kaizoku.co.jp']
ここです。
これは、メールフォームの作成で、問い合わせ相手に自動返信するものなんですが、
ここに問い合わせてきた人のアドレスをセットするわけです。
相手のアドレスなんて特定できませんよね?
相手がメールアドレスを入れてくれた場合、そのアドレスを変数で指定して
自動的に返信する、というプログラムになるわけですが。。。。
ここには、['mail']と書いてやればいいわけです。
from_mailには自分のアドレスをセットしてやったのに、ここはなぜmail
でいいの??
それはですね〜♪
子モジュール(モジュールBとしましょう。)の親のモジュール(モジュールAとしましょう。)
に、
if ($self->{from_email} =~ /@/ ){ $from_email = $self->{from_email}; } else { $from_email = $query->param($self->{from_email}); }
と、あるわけです。だから、mailと入れると、相手のメールアドレスを
指定してくれるんですね。
さて、どういうことかというと。。。。
if ($self->{from_email} =~ /@/ ){
「もし、from_emailの値がアドレスだったら」$from_email = $self->{from_email};
「そのアドレスをそのまま$from_emailに代入してメールを送れ!」else {
$from_email = $query->param($self->{from_email});
「そうじゃなかったら、クエリーから、mailの値を取ってきて、それを代入して$from_email = $query->param($self->{from_email});
メール送れよ!」
という意味なんですね♪
もちろん、['mail'] この値は、相手がメールアドレスを入れたフォームの名前を
入れないとだめですよ♪
なかなか便利な小技でした♪