- ベストアンサー
さくらインターネット sendmail
恐れ入ります。 さくらインターネットでperlを使い、HTML上からsendmail送信をしているのですが、 送信元のFromの内容が、私のドメイン xxxx@xxxx.xx で記述してもwww234.sakura.ne.jpのようにさくらインターネットのドメインが付いてしまいます。 どのようにしたら良いのかがわかりません。 ご教授頂けたらと思います。 宜しくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
No4のお礼というか補足、確認しました。 なるほど。 Fromアドレスをソース内で $from = "xxx@xxx.com"; で決め打ちされてういますが、 これをダブルクォートで囲んでいるので、これだと @xxxを配列表記と認識して、実際は@xxxという配列がないので $from = "xxx.com"; を代入しているのと同等になります。 それで、sendmailが、自ホストのドメインを自動で補完しているのでしょう。 なので、ここをシングルクォートにして $from = 'xxx@xxx.com'; で、解決すると思われます。 $to もソース内に決め打ちにするなら同じくです。
その他の回答 (4)
- superside0
- ベストアンサー率64% (461/711)
> -fオプションをつけたのですが、やはり現象は変わりません。。。 おかしいですね。 具体的なソースコードを教えて下さい。 たとえばsystemコールしているところは、 popen("| /usr/lib/sendmail -f 送信元アドレス 送信先アドレス") もしくは popen(" | /usr/lib/sendmail -t -f 送信元アドレス") ※-t 指定で 送信先アドレスはヘッダ内のTo:やCc:の記述内容を採用 ですか? それともMail::Sendmailを使われてます?
お礼
送信しているのは以下の記述で行っています。 宜しくお願いします。 $sendmail = '/usr/sbin/sendmail'; $to = "yyy.yyy.com"; $from = "xxx@xxx.com"; if (! open(MAIL, "| $sendmail -t -f $from")) { print "\n"; print "メールの送信に失敗しました。"; exit; } $from =~ s/\r|\n//g; $to =~ s/\r|\n//g; $subject =~ s/\r|\n//g; $mailtext = << "EOM"; From: <$from> To: <$to> Subject: remind Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="EUC-JP" メール本文 print MAIL $mailtext; 以上になります。
- catpow
- ベストアンサー率24% (620/2527)
>>現在さくらインターネットでドメインも取得しています。 さくらでドメインを取得するだけでは、サーバのドメインは取得したものになりません。 さくらでドメインを取得して、そのドメインをロリポップで契約しているサーバ用に使うなんてこともあるわけですからね。 契約したさくらのサーバのマシン名を取得したドメインに適用する作業を行っていますか?
お礼
ありがとうございます。ドメインは反映されています。 HPも閲覧できますし、通常のメール送信は可能です。 perl内のsendmailがうまく行かない感じです。
- superside0
- ベストアンサー率64% (461/711)
さくらインターネットでの環境でどうなのかは分かりませんが ヘッダー内のFrom:で送信元アドレスを指定しているだけで sendmail の -f オプション で 送信元アドレスを指定していないと そういう状況になりがちです。
お礼
-fオプションをつけたのですが、やはり現象は変わりません。。。
- catpow
- ベストアンサー率24% (620/2527)
perlからメール送信したことありませんが、もしかしたら、さくらサーバのドメインが使われているのかも? 使われているマシンのドメインがご自身のもの(xxx@xxxx.xxの@より右のxxxx.xx)に設定してみたらどうでしょう?
お礼
ありがとうございます。現在さくらインターネットでドメインも取得しています。サーバー領域もさくらインターネットです。 取得したドメインがFromに入らないのです。
お礼
有難うございます。シングルクォートで囲んだら無事にFromに指定アドレスが入りました。 大変助かりました。ありがとうございます。