sendmailコマンドでは、-f オプションでfromアドレスを指定しない場合、お客様のBIGLOBEメールアドレスがfromアドレスに設定されてメール送信がされます。
↑と記載されているので-fオプションを設定したいのですが、↓に書き足すにはどの様に記載したら良いでしょうか?
if ($sendmail) {send_mail($sendmail,'',$subject,$masteremail,'','','',$msg)}
if ($sendmail) {send_mail($sendmail -f ***@***.ne.jp,'',$subject,$masteremail,'','','',$msg)}
↑だとBIGLOBEメールアドレスのまま届いてしまいます。
No.3ベストアンサー
- 回答日時:
perl-lib.pl をよくよくのぞいてみましたところ、
sendmailコマンドで-fオプションを指定できるように書き換える必要があります。
perl-lib.pl 212行目付近の send_email 関数は、
以下のような構造となっています。
(かなり省略しました)
------------------------------------------------------------------------------
sub send_email {
my($sendmailpath, $uuencodepath, $subject, $from, $to, $cc, $bcc, $body, $files, $encoding, $separator) = @_;
... 略
if ( $sendmailpath =~ /blatj/i ) {
... 略
} elsif ( -e $sendmailpath ) {
... 略
if (open(MAIL,"| $sendmailpath -t")) {
... 略
} else { $err = 'Error Open sendmail Failure'; }
} else { $err = 'Error Not sendmail Utility'; }
$err;
}
------------------------------------------------------------------------------
この
if (open(MAIL,"| $sendmailpath -t")) {
という行を、
if (open(MAIL,"| $sendmailpath -f $from -t")) {
と書き換えればよい。
ところで、回答ANo.1 の補足に貼り付けられたコードで、
CGIプログラム中での send_email 関数の呼び出し箇所
if ($sendmail) {send_email($sendmail,'',$subject,$masteremail,$masteremail,'','',$msg)
if ($sendmail) {send_email($sendmail,'',$subject,$masteremail,$masteremail,'',$bcc,$news)
のように、from と to の両方に同じ変数 $masteremail を渡しているのですが、これは問題ないのでしょうか??
perl-lib.pl の指示して頂いた場所を書き換えて試したところ
送信者アドレスからBIGLOBEメールアドレスが消えました^^
何度もお手数を掛けて申し訳ありませんでした。
また、from と to の両方に同じ変数が渡っているので、送信者と受信者が
同じアドレスになりますが、mailは届いているのでOKです。
本当に丁寧に教えて頂け助かりました。
心よりお礼申し上げます。ありがとうございました。
No.2
- 回答日時:
補足にはりつけられたソースコードの行を見ると、
関数名は、send_mail ではなく、send_email のようです。
そのCGIプログラム中で、関数 send_email を定義していないのならば、
ひょっとして、汎用関数ライブラリ perl-lib.pl をお使いではないでしょうか?
ソースコードに次のような記述がないでしょうか?
require 'perl-lib.pl'
perl-lib.pl のソースコードを見ると、
send_email 関数は、4番目の引数に
-f オプションをつけて、sendmail コマンドに渡しています。
呼び出す側では、4番目の引数は、$masteremail となっています。
if ($sendmail) {send_email($sendmail,'',$subject,$masteremail,$masteremail,'','',$msg)
↑この行より手前で、変数 $masteremail に、設定したいFromアドレスを代入してやればよいでしょう。
参考URL:http://www.tryhp.net/perllib.htm
この回答への補足
require 'perl-lib.pl' の記述ありました。
$masteremail = '*****@*****.co.jp' を教えて頂いた箇所に入れましたが駄目で
if ($sendmail) のある全ての前に3箇所同時に入れたりもしてみましたが駄目でした。
諦めモード入って来ました…色々教えて頂いたのに申し訳ありません。
No.1
- 回答日時:
そのCGIプログラムは記述言語は何でしょう?
Perl でしょうか?
Perl だとして話をすすめてしまいます ^^;
send_mail(...) は、sendmailコマンドではなく、send_mailという名前の関数をよびだしています。
その関数は、そのプログラムの別の箇所もしくは別のファイルで次のように定義されているはずです。
sub send_mail {
... 略
}
探してみてください。
そのなかでsendmailコマンドにメールを渡す処理が
書かれているはずなので、
そちらに -fオプションを書き足せばよいでしょう。
この回答への補足
レスありがとうございます。
記述言語はPerlです。
教えて頂いたものを探したのですが見つからなくて…
UPするCGIもこれ一つです。
sendで検索してかかったものは下の6行です。
$sendmail = '/usr/lib/sendmail';
print "<input type=hidden name=cgi_action value=sendmail>\n";
elsif ($QUERY{'cgi_action'} eq 'sendmail')
if ($sendmail) {send_email($sendmail,'',$subject,$masteremail,$masteremail,'','',$msg)
if ($sendmail) {send_email($sendmail,'',$subject,$masteremail,$masteremail,'',$bcc,$news)
if ($sendmail) {send_email($sendmail,'',$subject,$masteremail,$QUERY{'E-Mail'},'',$masteremail,$msg)
最後の3つは先だっての質問でお答え頂いたので違いますよねぇ
とすると3行目かと思い
elsif ($QUERY{'cgi_action'} eq 'sendmail -f ***@***.co.jp')
としてみましたが駄目でした。
ご意見頂けますようお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux Ubuntuサーバーでメールを受信できない 7 2022/08/23 20:55
- PHP php 完了画面の送信メールのコードを書いているのですが・・・ 2 2023/06/02 12:01
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
- Gmail 【お助け!】サーバーからのメール送信でGmailに送信されない問題について 1 2023/06/20 22:03
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
- JavaScript javascriptで入力フォームが空欄の時にアラートによるエラーを出すコードを書いています。 2 2023/06/13 17:58
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- UNIX・Linux iptablesを設定するとメール送信処理が遅くなる!? 6 2022/06/07 01:11
- CGI -T(汚染モード)でメールが送れません 1 2022/06/12 14:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HTTP500内部サーバーエラーと表...
-
ファイルの削除について ( unli...
-
EXCELファイルに誰がアクセスし...
-
HTML文書の中で環境変数を使う...
-
カリビアンビーチへの行き方
-
特定のCGIだけ、作動するかわり...
-
CGIでソースがそのままでてしま...
-
perlからphpを実行して結果を得...
-
拡張子をcgiにしたい。
-
nicky.cgi内で、しぃペインター...
-
排他処理について教えてください。
-
《エクセルVBA》「他の人が該当...
-
まったくわかりません。お手上...
-
設置場所場わかりません。
-
なぜフォルダ名がcgi-binなの?
-
掲示板のスレッドが消えた!?
-
私書箱掲示板プラス添付ファイル
-
HTML字数制限対応の文字置換 パ...
-
メールアドレスの@から後ろが・...
-
マイ ネットワーク\\サーバーA(...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プロバイダで定められたPerlへ...
-
SSI(<!--#exec cmd="./XXXpl")...
-
/usr/local/bin/perl の発音
-
ファイルの削除について ( unli...
-
コアサーバー(coreserver)でのc...
-
ニフティでメールフォームを使...
-
patipati拍手 設置方法
-
文法チェックにひっかかりまし...
-
古ーくからフリーのtree.cgi掲...
-
windowsでperlの1行目を無視す...
-
Mac OS X 10.5 LeopardのApache...
-
sendmailの-fオプション記述
-
HTTP500内部サーバーエラーと表...
-
1日の売上表を作りたいのですけ...
-
CGI初心者です。設置したいので...
-
急にCGIが動作しなくなった。
-
見本のCGIをマニュアル通りに置...
-
BBSの設置について
-
CGI設置時に500エラーになります
-
パーミッションについて
おすすめ情報