質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

2109閲覧

受信するメールアドレスを変更したい

r110

総合スコア16

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2018/03/07 05:12

編集2018/03/07 06:12
// メール送信 // $ip=getenv("REMOTE_ADDR"); $form['USERIPADDRESS']['value']=$ip; $host=getenv("REMOTE_HOST"); if ($host == null || $host == $ip) $host=gethostbyaddr($ip); if(checkProxy()!==FALSE) $host.=" *PROXY?* ".checkProxy(); $form['USERHOST']['value']=$host; $form['USERAGENT']['value']=$_SERVER["HTTP_USER_AGENT"]; $master=""; $user=""; $setmode=""; $webmaster_from=""; $webmaster_to=""; $webmaster_bcc=""; $webmaster_reply=""; $webmaster_subject=""; $user_from=""; $user_to=""; $user_bcc=""; $user_reply=""; $user_subject=""; $fp=fopen($form['mailtemplate']['filename'],"r"); if($fp==FALSE){ print FATAL_ERROR_MESSAGE.$form['mailtemplate']['filename']." can not open!"; exit(); } $line=0; while(feof($fp)==false) { $line++; $template=fgets($fp); foreach($form as $element => $data) { $replace="<!--".$element."-->"; $pos=mb_strpos($template,$replace); if($pos!==FALSE) { $template=mb_ereg_replace($replace,$form[$element]['value'],$template); } } $cmd=trim($template); switch($setmode) { case 'webmaster': if($cmd!="") { if($cmd=="</webmaster>") { $setmode=""; break; } elseif(CheckTemplateTag($cmd)==TRUE) { print FATAL_ERROR_MESSAGE.$form['mailtemplate']['filename']." / ".$cmd."? line:".$line; exit(); } $param=explode("=",$cmd); $param[0]=trim($param[0]); $param[1]=trim($param[1]); switch(($param[0])) { case 'from': $webmaster_from=$param[1]; break; case 'to': $webmaster_to=$param[1]; break; case 'bcc': $webmaster_bcc=$param[1]; break; case 'reply': $webmaster_reply=$param[1]; break; case 'subject': $webmaster_subject=$param[1]; break; default: print FATAL_ERROR_MESSAGE."webmaster / ".$param[0]."? line:".$line; exit(); } } break; case 'webmasterbody': if($cmd=="</webmasterbody>") { $setmode=""; break; } $master.=html_entity_decode($template); // $master.=$template; break; case 'user': if($cmd!=="") { if($cmd=="</user>") { $setmode=""; break; } elseif(CheckTemplateTag($cmd)==TRUE) { print FATAL_ERROR_MESSAGE.$form['mailtemplate']['filename']." / ".$cmd."? line:".$line; exit(); } $param=explode("=",$cmd); $param[0]=trim($param[0]); $param[1]=trim($param[1]); switch(($param[0])) { case 'from': $user_from=$param[1]; break; case 'to': $user_to=$param[1]; break; case 'bcc': $user_bcc=$param[1]; break; case 'reply': $user_reply=$param[1]; break; case 'subject': $user_subject=$param[1]; break; default: print FATAL_ERROR_MESSAGE."user / ".$param[0]."? line:".$line; exit(); } } break; case 'userbody': if($cmd=="</userbody>") { $setmode=""; break; } $user.=html_entity_decode($template); break; case '': if(CheckTemplateCloseTag($cmd)==TRUE) { print FATAL_ERROR_MESSAGE.$form['mailtemplate']['filename']." / ".$cmd."? line:".$line; exit(); break; } if($cmd!=="") { switch($cmd) { case '<webmaster>': $setmode="webmaster"; break; case '<webmasterbody>': $setmode="webmasterbody"; break; case '<user>': $setmode="user"; break; case '<userbody>': $setmode="userbody"; break; default: print FATAL_ERROR_MESSAGE.$form['mailtemplate']['filename']." / ".$cmd."? line:".$line; exit(); break; } } } } // //テンプレート読み取り完了 //必須項目チェック // if($webmaster_from=="" || $webmaster_to=="" || ($user_to!="" && $user_from=="")) { print FATAL_ERROR_MESSAGE.$form['mailtemplate']['filename']." / check mailaddress!"; exit(); break; } // // メールの送信 //A server error. I am very sorry, but please contact it on the telephone. $senderr=""; // $user_subject=mb_convert_encoding($user_subject,"EUC-JP","UTF-8"); // $user=mb_convert_encoding($user,"EUC-JP","UTF-8"); // $webmaster_subject=mb_convert_encoding($webmaster_subject,"EUC-JP","UTF-8"); // $master=mb_convert_encoding($master,"EUC-JP","UTF-8"); if($user!="") { $ret2=@mb_send_mail($user_to,$user_subject,$user,"From:".$user_from); if($ret2==FALSE) { $senderr="****USER MAIL SEND ERROR****"; } } $ret1=@mb_send_mail($webmaster_to,$webmaster_subject,$master.$senderr,"From:".$webmaster_from); if($ret1==FALSE) { print "Internal server error. I am very sorry, but please contact it on the telephone."; exit(); }

PHPは初心者というよりはほとんど理解がありません。
そんな状態でのお問い合わせで申し訳ないのですが。
受信するメールアドレスを変更したく、検索して確認すると
phpファイルの@mb_send_mailから始まる部分で指定しているというところまでわかったのですが
それ以下の表記が理解できず分かりません。

教えていただけますでしょうか。よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

なぜほぼ理解がない方がその対応することになったか、というところに疑問がなわけではないですが、一応、回答します。

プログラミングを理解できていない方に分かるか不明なので、
ある程度調べられたほうが良いかもしれません。

プログラミング言語には変数 というものがあり、
何かの文字列などの情報を格納しておくことができます。
同じ情報を何度も利用する際に、万が一すべて直に書いていた場合、その情報が変更になったときに
何箇所も変更しなければならなくなります。

手順が増えるとミスが増えます。

そんなときに変数を利用していれば、その変数を定義している箇所で
変数に代入している情報さえ修正すれば、同じ情報を利用している箇所への
反映は一発で完了、ということになります。

PHPでは $と任意の英数字の組み合わせで変数ができています。
(数字が最初ではダメ、とか細かいルールはあったはずですが、ひとまず)

で、今回、メール送信のために
mb_send_mail()というPHPの関数が利用されています。

関数と言うのは「一定の処理をまとめた機能のこと」とでも表現すれば良いでしょうか。
その機能を実行するために必要なのが「引数」というもので、
必要な引数を正しく設定してやることで関数が正常に実行されるわけです(もちろん何かの影響で正しく実行されないこともあります)

で、今回ですと、

$webmaster_to  がメールの受信者
$webmaster_from がメールの送信者

となります。
この2つの変数がどこで定義、情報が代入されているか調べてください。
必ず下記のようになっている箇所があるはずです。
※並んでいるとは限りませんので個別に探してください。

php

1$webmaster_to = 'hogehoge@sample.com'; 2 3$webmaster_from = 'fugafuga@sample.com';

メールフォームのようなものでしたら、もしかしたら$webmaster_toには$_POST["mail"]のようになっているかもしれません。
メールフォームに入力したメールアドレスに送信する場合などはそうなっています。

代入している場所が分かれば、この右辺の情報を書き換えてあげればOKです。
あとは「受信するメールアドレス」というのはどちらか?というところですね。

メールを受信する方のメールアドレスでしたら$webmaster_to ですし、
メールの送信者を設定するメールアドレスでしたら$webmaster_from です。

投稿2018/03/07 05:29

編集2018/03/07 05:35
m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

r110

2018/03/07 05:42

mts10806さま 丁寧にご回答くださり本当にありがとうございます。質問文も拙く申し訳ありません。 いま追加でPHPの部分を入れたのですが、 $webmaster_from=""; の部分に、変更したいメールアドレスを入れたのですが、変更できませんでした。 表示の通り、そもそもこの部分が何も書かれていなかったので、いったいどのファイルに受信メールアドレスが入っているのか分かりません。 教えていただけますでしょうか?よろしくおねがいいたします
m.ts10806

2018/03/07 06:07 編集

ソースコードはこれで全てですか? $user_subject=""; と if($user!="") { の間に色々ありそうに思えますが。。 他に$webmaster_fromや$user_from あと$userを設定していたり利用している箇所はありませんか? とりあえず、下記のように書けば必ずそのメールアドレスにならなくはないですが、 $ret1=@mb_send_mail($webmaster_to,$webmaster_subject,$master.$senderr,"From:hogehoge@sample.com"); わざわざ変数になっているのであまり直に書きたくはないですね。
r110

2018/03/07 06:16 編集

mts10806さま $user_subject=""; と if($user!="") { の間の表記を追加しました。変数が効いているのか、ご回答いただいた通り $ret1=@mb_send_mail($webmaster_to,$webmaster_subject,$master.$senderr,"From:hogehoge@sample.com"); と入れても変更されませんでした。これでわからなければ、アドレスの変更自体を検討したいと思います。 ご確認いただければありがたいです。よろしくお願いいたします
m.ts10806

2018/03/07 06:16

あと探し方とすれば、実際のメールアドレスが分かっているならどこかに書いてあるのでソース内をそのメールアドレスで検索してみるとか、ですかね。 1ファイルで全て書いてあるとは限らないので、Grepができる検索ツール(さくらエディタとかも使えます)を利用すると良いです。
r110

2018/03/07 06:19

ありがとうございます。ftpファイルからサーバーにアクセスしています。 実際のメールアドレスはわかっているので、検索してみたいと思います。
m.ts10806

2018/03/07 06:25 編集

これもしかしてxmlか何か使ってますかね。 PHPの中に直に書いているわけではなく、外部の設定ファイルに設定しているっぽいです。 $webmaster_fromも$user_fromもそこから読み取っているような記述となっています。 設定ファイルを開いていると思われる記述: $fp=fopen($form['mailtemplate']['filename'],"r"); この前で echo $form['mailtemplate']['filename']; として画面から実行するとそのファイル名が出力されるはずなので確かめてみてください。 あと、直に書いていて変更されないのは変数は関係ありません。 おそらく確認されているのは$user_toの方でメールを受信しているのではないでしょうか? $ret2=@mb_send_mail($user_to,$user_subject,$user,"From:".$user_from); ↑を $ret2=@mb_send_mail($user_to,$user_subject,$user,"From:hogehoge@sample.com"); とするとどうでしょうか?
r110

2018/03/08 03:18

mts10806さま こちらの件、参照しているファイルが見つかり、メールアドレスを変更することができました! 詳しく教えてくださり本当にありがとうございました。とても助かりました。 これを機にPHPを学んでいきます。ありがとうございました。
m.ts10806

2018/03/08 03:20

解決したようで何よりです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問