ついに夏本番!さぁ、家族でキャンプに行くぞ! >>

PHPのsendmailにて送信元を変更させたいのですが
現在
mb_send_mail($sendto,$subject,$text,"Form:送信元アドレス")
のようにしているのですが、反映されずサーバーのアドレスにて送信されてしまいます。
ini_set関数にてセットしてみても同じでした。
メールが返信された場合に当方のアドレスまで返信されるように当方のアドレスを送信元表示させたいのですが・・
sendmailの設定を変える必要があるのでしょうか?
なにか良い方法はありませんか?

このQ&Aに関連する最新のQ&A

A 回答 (3件)

使い方には問題のないような気が…



>mb_send_mail($sendto,$subject,$text,"Form:送信元アドレス")

"Form" → "From" の綴りの間違いだけだったりして?
    • good
    • 1
この回答へのお礼

綴り間違いでした・・・・・・・・・><
ご指摘いただきましてありがとうございました!!

お礼日時:2005/04/22 16:46

-------------------------sendmail.php


<?php
$to = "test@test.jp";
$from = "送信者名 <sample@test.jp>";
$rp = "admin@test.jp";
$org = 'テスト株式会社';

$head = '';
$head .= "Content-Type: text/plain \r\n";
$head .= "Return-Path: $rp \r\n";
$head .= "From: $from \r\n";
$head .= "Sender: $from \r\n";
$head .= "Reply-To: $rp \r\n";
$head .= "Organization: $org \r\n";
$head .= "X-Sender: $from \r\n";
$head .= "X-Priority: 3 \r\n";

$subject = "こんにちは、テスト株式会社です";
$body = "本日は晴天なり
さて先日は有難うございました";

mb_send_mail($to, $subject, $body, $head ,"-fsample@test.jp" ) ;
?>
-------------------------

こんな感じも可能


補足
sendmailのバージョンによっては-fオプションをつけると
X-Authentication-Warningがヘッダーに付く場合があるのでなんとなく気持ち悪い事があるので注意です
これは、-fオプションをつかって、送信元を書き換えられているが、信用できるとは限らない
っといいう意味で、まぁ、送信元を偽造するspam対策って感じ。


回避の仕方は有りますが、sendmailの設定を直接触れる権限がないとムリです
    • good
    • 0
この回答へのお礼

X-Authentication-Warningの表示がヘッダーにも表示されず無事解決することができました。
ヘッダーを直接書き換えられるのですね。
大変勉強になりました。ありがとうございました。

お礼日時:2005/04/22 16:50

メールヘッダだけでいいんだったら、


mb_send_mail($sendto,$subject,$text,"From:送信元アドレス")
でいいんだけど、エンベロープも変更する必要があるので、正解はこれ。
mb_send_mail($sendto,$subject,$text,"From:送信元アドレス", "-f送信元アドレス")
    • good
    • 0
この回答へのお礼

エンベローブも変更する必要がありましたので
大変助かりました!どうもありがとうございます!
無事解決しました!

お礼日時:2005/04/22 16:48

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QPHPでのメール差出人名について

PHPでのメール差出人名について

PHPのmb_send_mailでメール送信プログラムを書いています。
メールは送信されるのですが、メーラーで確認すると
差出人名(送信者)がうまく表示出来ません。

具体的には、
『▲▲サイトより送信』と表示させたいのですが、
『▲▲サイトより送信@レンタルサーバのドメイン名』
と表示されてしまいます。

下記がソースになるのですが、有識者の方いらっしゃいましたら
ご教授よろしくお願いします。

--------------------------------------------
//送信設定
mb_language("japanese");
mb_internal_encoding("euc-jp");
$from = mb_encode_mimeheader(mb_convert_encoding("▲▲サイトより送信","JIS","euc-jp"));
$head = "From: {$from}" . "\r\n" . 'X-Mailer: PHP/' . phpversion();

//送信実行
mb_send_mail($mail_to, $title, $message, $head);

PHPでのメール差出人名について

PHPのmb_send_mailでメール送信プログラムを書いています。
メールは送信されるのですが、メーラーで確認すると
差出人名(送信者)がうまく表示出来ません。

具体的には、
『▲▲サイトより送信』と表示させたいのですが、
『▲▲サイトより送信@レンタルサーバのドメイン名』
と表示されてしまいます。

下記がソースになるのですが、有識者の方いらっしゃいましたら
ご教授よろしくお願いします。

--------------------------------------------
//送信設定
mb_language("japanese"...続きを読む

Aベストアンサー

メールアドレス風の文字列が入っているせいか、「現在、この回答はサポートで内容を確認中です」になってしまったので、再書き込みします。

ちょっと試してみましたが、mb_encode_mimeheader がメールアドレスの部分までMIMEエンコーディングしてしまいうようです。
(そのため、受信した側でMIMEデコードした結果を見ると、正しいヘッダのはずなのに変な処理をされているように見えますが、メールサーバ側で受け取った段階(MIMEエンコードされたヘッダ)では、From:ヘッダとして正しくメールアドレスが記述された状態ではなくなってしまってます)

これはmb_encode_mimeheader のバグ(というか仕様が腐ってる)んだと思います。

メールアドレスの記述はmb_encode_mimeheader を通さないように

$from = mb_encode_mimeheader(mb_convert_encoding("○○","JIS","euc-jp"))." <メールアドレス>";

とすればいけると思います。

Qillegal string offset

php5.3では動いていたプログラムをphp 5.4 で動かしたらwarning illegal string offsetが出て困っています。以下のプログラムでwarningが出ないようにするにはどのようにコーディングすればよいのでしょうか?


$a = array('exists' => 'foo');
if ($a['exists']['non_existent']) {
print 1;
}
print 2;
exit;

Aベストアンサー

isset()を使えばいいと思います

QリダイレクトでPOST

教えてください。

リダイレクトの際、POSTで次のページにデータを渡すことは可能でしょうか?

GETだと
header("Location: "a.php?no=".$no);
と、問題なくできるのですが、
できれば、パラメータを隠したいと思います。

以上ですが、よろしくお願いします。

Aベストアンサー

多分できないです。
それに、結局クライアント側に情報を送信しているのだから、POSTにしたところでパラメータを隠した事にはならないですし。
本当に隠すならサーバ側でセッション情報を引き継ぐような形にしないとダメでしょう。

AJAXのかたちにして、ページ遷移を見えなくするというのが手っ取り早いかも。

Q文字列から、特定の文字を削除したい

アンケートで入力された値を受け取り、メールで送信しているのですが、受け取った値から、特定の文字列を削除することは可能でしょうか?

例えば電話番号の入力の場合、
03-xxxx-xxxx →03xxxxxxxx
077-xxx-xxxx →077xxxxxxx
のように、-(ハイフン)が入力されていたら、-を削除した文字列に置換してメール送信したいのです。
入力する時に、3つのテキストエリアに分けるのは諸事情でできないので、特定の文字を削除する関数か処理方法がありましたら、教えていただきたいです。
よろしくお願いします。

Aベストアンサー

str_replace
http://itbtech.itboost.co.jp/man/php_man/function.str-replace.html

<?php
$orig_telno = "03-xxxx-xxxx";

$telno = str_replace("-", "", $orig_telno);
echo $telno;

03xxxxxxxx

“PHP 文字列” あたりをキーワードに検索すれば
そんなに難しいものでもないような。

Qsyntax error, unexpected '}' というエラーの対処法

PHPを習い始めて三日目になるのですがParse error: syntax error, unexpected '}' in C:\Program Files\Apache Group\Apache2\htdocs\****\****\game.php on line 33
というエラーがでるのですが33行目前後のどこをなおせばいいのでしょうか?
・game.php
<html>
<head>
<title>数当てゲーム</title>
</head>
<body>
<h1 style="background:#cccccc">数当てゲーム</h1>
<form method="POST" action="game.php">
1~100までの数を入力してください
<input type="text" name="answer" size="5" maxlength="3" />
<input type="sbumit" value=回答" />
</form>
<hr />
<?php
session_start();
if(is_null($_SESSION['answer'])){
mt_stand(microtime()*1000000);
$_SESSION['answer']=mt_rand(1,100);
$_SESSION['game_cnt']=0;
}
if($_POST['answer']!=""){
$_SESSION['game_cnt']++;
if($_session['answer']==$_POST['answer']){
print("おめでとうございます".
$_SESSION['game_cnt']."回で正解しました!");
session_destroy();
}else{
if($_SESSION['answer']>$_POST['answer']){
print("もう少し大きいです。");
}else
print("もう少し小さいです。");
}
}
}
?>
</body>
</html>
それとこの間違えたところをなおしたあとはいつもコンピュータを再起動しないと修正したところが適用されないのですがほかに方法はないですか?基本的な質問ですいません。

PHPを習い始めて三日目になるのですがParse error: syntax error, unexpected '}' in C:\Program Files\Apache Group\Apache2\htdocs\****\****\game.php on line 33
というエラーがでるのですが33行目前後のどこをなおせばいいのでしょうか?
・game.php
<html>
<head>
<title>数当てゲーム</title>
</head>
<body>
<h1 style="background:#cccccc">数当てゲーム</h1>
<form method="POST" action="game.php">
1~100までの数を入力してください
<input type="text" name="answer" size="5" max...続きを読む

Aベストアンサー

print("もう少し大きいです。");
}else
print("もう少し小さいです。");
のelseの後に{がないようですが、大丈夫でしょうか?

Qサーバーによってはmb_send_mailが実行できないこともあるのでしょうか

現在友人に頼まれて、PHPによるmb_send_mail関数を使ったメールフォームを作成しています。

一度私がレンタルしているサーバーで動作確認をして、その後、友人のレンタルしたサーバーにアップしてみましたが、
なぜか動作してくれません。
私のサーバーですと、何の問題もなく動作します。

こういったケースの場合に考えられるのは、
mb_send_mailの実行をサーバー側で拒否しているのでしょうか。

どうぞお助け下さい。

Aベストアンサー

sendmail_pathにパスが入っているのでsendmailは
使えます。

まず、動かない方のサーバーのphpinfoの上の方の
Configure Commandの中に--enable-mbstringって
入ってますか?

これが入ってればmbstring拡張モジュールが入っているということなので、動かない原因は別のところにあります。エラーメッセージやバージョンなど教えてもらえれば、何か原因がわかるかもしれません。

もし入っていなければ、参考URLのサイトさんで漢字コード変換のスクリプトを配布されていますのでこちらを使わせていただくことをおすすめします。

このスクリプトを使ったフォームメールスクリプトも配布されていますので、参考にしてみてはいかがでしょうか?

参考URL:http://www.spencernetwork.org/

Q宜しくお願いします。

宜しくお願いします。
mix~max値の間、発行したクエリーからの値を配列に入れたいのですが、どうもFor文中にmin,max値は届いているのですが,$resultに値が入りません。
エラーからしてSQLで行っている変数処理に$iの値が届いてない感じがするのですが、下記のソースを見て頂いて、疑わしき点などご指摘、ご教授いただけませんでしょうか。

どうぞ宜しくお願いします。


--エラー文ここから--->
Catchable fatal error: Object of class stdClass could not be converted to string in ...




--ソースここから--->

$min = h($r -> x);
$max = h($s -> y);
for($i=$min ; $i<= $max; $i++){
$search = sprintf("SELECT id FROM Sheet WHERE no='%d'",$i);
$q_search = mysql_query($search);
$result = mysql_fetch_object($q_search);
echo $result;
}

宜しくお願いします。
mix~max値の間、発行したクエリーからの値を配列に入れたいのですが、どうもFor文中にmin,max値は届いているのですが,$resultに値が入りません。
エラーからしてSQLで行っている変数処理に$iの値が届いてない感じがするのですが、下記のソースを見て頂いて、疑わしき点などご指摘、ご教授いただけませんでしょうか。

どうぞ宜しくお願いします。


--エラー文ここから--->
Catchable fatal error: Object of class stdClass could not be converted to string in ...




--ソースここから...続きを読む

Aベストアンサー

PHPあまり詳しくないので間違っていたらすいません。


>$result = mysql_fetch_object($q_search);
でresultはobject型で代入しておりそれを表示するときにString型に変換できていないのが原因かとおもわれます。

参考URL
mysql-query
http://php.net/manual/ja/function.mysql-query.php

mysql-fetch-array
http://php.net/manual/ja/function.mysql-fetch-array.php

mysql_fetch_object
http://phpspot.net/php/man/php/function.mysql-fetch-object.html

QERROR1062:Duplicate entry.....というエラーが出てしまいました

いつもお世話になります。
データベースからSELECTで抽出したデータを別のテーブルにINSERTするSQLを実行したのですが、
ERROR1062:Duplicate entry.....というエラーが出てしまいました。
お詳しい方がいらっしゃいましたら、アドバイスをいただけませんでしょうか?よろしくお願いいたします。
【実行したSQL】
INSERT INTO tblA (dataA1, dataA2, dataA3, dataA4) SELECT "9001","AA",dataB1,dataB2 FROM tblB WHERE dataB1 = 52

tblAの主キー:dataA1とdataA2
tblBの主キー:dataB1

dataA1とdataA2はtblAの主キーとなっているため、重複してしまうということのようです。tblBの主キーはdataB1であるため、抽出されてくるデータは常に1件なので問題ないと期待していましたが、甘くなかったようです。何か良い方法はないものでしょうか?よろしくお願いいたします。

Aベストアンサー

「ERROR 1062」は、重複データを格納しようとした場合に出力されるエラーです。
既にdataA1='9001'&dataA2='AA'という行が、tblAに格納されているのですよね?

>抽出されてくるデータは常に1件なので問題ないと期待していました

「insert ~ select ~」を実行前に、既に同じデータが格納されているのでは?
あるいはprimary keyの指定が、質問中に記された通りでなく、2件以上検索されているかです。

>何か良い方法はないものでしょうか?

何をするための方法を、聞きたいのかが分かりませんが?

QJavaScriptde途中で、「exit」するには?

function kensaku(){
s_data = document.kaiin_form.input_name.value;

if(!s_data){ alert("キーワードを入れて下さい!"); }

if(s_data != dumy){ ...... }
for(i=st_no;i<=n;i++){
......省略.................;
.......省略................}
}

----------------------------------
3行目で表示されたアラートをOKで閉じても、4行目以下が実行されてしまいます。
3行目でexitするにはどうすれば良いでしょうか?

Aベストアンサー

>関数(kensaku())からは抜けられませんでした。
そうですね、勘違いしていました、f(^^;
すみません。
if(!s_data){
alert("キーワードを入れて下さい!");
return;
}
ですね。

Qリンクをクリックした時にformからPOST送信したい。

HTML、PHP、JavaScript等でサイトを作っているのですが・・・。

【実現出来ている例】
<form name="form1" method="post" action="Next.php" onSubmit="return InputCheck()">
 <input type="submit" value="送信">
</form>
 submitボタンを一つ置いて、それがクリックされた場合に
formの内容をPOSTで送信する。

【実現したい例】
<form name="form1 method="post">
 <a href="Next.php" onClick="???">???</a>
</form>
 formの中のリンクをクリックされた場合に、formの内容を
POSTで送信したいのですが、その実現方法がわかりません。
GETで送るという手もあり得ますが、今回はどうしてもPOST
したいのですが。

Aベストアンサー

<form name="form1" method="post" action="Next.php">
<a href="#" onClick="document.form1.submit();">???</a>
</form>

onclick内の対象がform1としてあてているので、
アンカータグは別にform内に記述しなくても大丈夫です

form内にhidden等でnameとvalueを持ったパラメータがあればそれも送られます

アンカータグから動的にvalueを変更したい場合は、
document.form1.hogename.value = 'hoge';
等をsubmit()の前に行えば可能です

ただしform内に
<input type="hidden" name="hogename" value="">
を記述する等、変更先パラメータの元を用意する必要がありますのでご注意下さい


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング