『L・DK』上白石萌音&杉野遥亮インタビュー!

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

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

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

どうぞお助け下さい。

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

A 回答 (4件)

sendmail_pathにパスが入っているのでsendmailは


使えます。

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

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

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

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

参考URL:http://www.spencernetwork.org/
    • good
    • 0
この回答へのお礼

ご丁寧にありがとうございます。

なんと、enable mbstringがありました。
これで拡張モジュールが入っていたということになってしまうのですね。

ですが、mail関数にしてから、問題なく動作するようになりました。
少し不思議ですが、現状、mail関数なのに、
文字化けもしていません。
エラーとしての表記も現われないので、
これ以上、私の状況をご説明するのは困難かと思いますので、一度締め切らさせていただきます。

今回は非常に参考になるアドバイス、誠にありがとうございました。
send関数について不明な点が一点ありますので、
別件質問ということで、今回はポイントを
つけさせていただきます。

ありがとうございましたm(_ _)m

お礼日時:2004/03/03 22:38

mb_send_mailは、mbstring拡張モジュールが入っていないと使えません。



バージョンや設定などの違いで、同じスクリプトでも
動いたり動かなかったりすることはありえます。

とりあえず、phpinfo()を出力させてみて、
動くサーバーと動かないサーバーを見比べてみては?

sendmail_pathのところを見れば、sendmailが使えるかどうかもわかると思います。

sendmailが入っていれば、mb_send_mailが使えなくても、
mail関数を使って、文字コードの変換を自前でやれば
メール送信は可能ですよ。

参考URL:http://www.php.net/manual/ja/function.phpinfo.php
    • good
    • 0
この回答へのお礼

ありがとうございます。

ちょうどたった今、phpinfo()関数を試してみたところでした。
まず動くサーバーのほうは、

sendmail_path
LocalValueが、/usr/sbin/sendmail -t -i
Master Valueが、/usr/sbin/sendmail -t -i

で、

動かない サーバーのほうは、

sendmail_path
LocalValueが、/usr/sbin/sendmail -t -i
Master Valueが、/usr/sbin/sendmail -t -i

でした。
よくよく見ると一緒ですが、これならsendmailが使えるのでしょうか。

mail関数に置き換えようと思いますが、
文字コード変換について、何か参考になる手法はありますでしょうか。

宜しくお願い致します。

お礼日時:2004/03/02 23:09

サーバのOSが何か、一番肝心なことが書かれていないので


適当にアドバイスしますが、

UNIX/LINUX系の場合、mb_send_mail関数は、内部のsendmailコマンド
を利用して送信することになります。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。

サーバーのOSは、UNIXのようです。
http://www.asj.ne.jp/server/index.html

この場合、何が原因となってメール送信が不可となっていると考えられるのでしょうか。
このサーバーではユーザーのオリジナルCGIを許可しているのですが、なぜ、他のサーバーで動作したものが、このサーバーだと動作してくれないのか、これが本当に不思議でなりません。

また最悪、このサーバーではメール送信が不可能になってしまうのでしょうか。
ちょっと頭がくらくらしてきましたが、なんとか打開策を見つけようと必死です。

どうぞアドバイス宜しくお願い致します。

お礼日時:2004/03/02 21:39

制限していると思います。

サーバー環境はそれぞれですので。

そこのサーバー管理者に連絡してみるのが一番手です
ちなみに私は、メールサービスをかってに使わせないように制限してます
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。

今四苦八苦して作業しつつ、早速のアドバイスに感動しています。

実は
http://www.asj.ne.jp/
というサーバーです。
他のサーバーでは問題がなく動いたので、
やはりサーバー側の設定なのかなと思っています。

早速問い合わせてみることにします。
何かお気づきの点があればなんなりとご指摘下さい。

お礼日時:2004/03/02 21:34

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

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

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

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

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

QPHPからメールを送る@さくらインターネット

PHPを利用して、メールを送れません。

PHP4.3.10を使っています。レンタルサーバーとして、さくらインターネットのレンタルサーバー(プレミアム)を利用しています。

以下のようなスクリプトを書いたのですが、指定されたアドレスにメールが届いた気配がありません。何か、設定したりしないといけないとか、初歩的なミスかと思うのですが、何が悪いのでしょうか?
<?php
mb_language('Japanese');
mb_send_mail('xxx@xxx.xx.xx','やぁ','届いた?');
?>

Aベストアンサー

ソースには問題無いはずですがEUCで保存されてますよね?

考えられる問題は
・その他の引数が入っていない(通常は必要なものは補完されますので必要ありませんが)
 念のため指定してはどうでしょうか。
 どこかのMLリストでReturnpathヘッダーを付けたら送信できた。という
 スレッドを見たことがあります。
 サーバー側で差出人なしのメールを破棄しているかもしれません。
 通常はphp.ini内のsendmail_from欄を参照し
 NULLであればroot@サーバー名 になるはずです。

・マルチバイト関数が有効になっていない
 PHPのconfigure時に--enable-mbstring が有効になっていないと利用できないはずです。
 phpinfo()関数を実行してmbstring項目の該当値がenableになっていなければいけません。
 もっとも、この場合はエラーを吐くはずなんですが・・・

・php.iniの設定でsendmailへのpath設定されていない
 あり得ないとは思いますがsendmailへのpathが設定されていない可能性があります。
 コレばかりはサーバー管理者しか設定できませんので管理者に連絡するしかありません。
 通常は自動認識してくれるはずなんですが・・・
この時もエラーを吐いてくれるはず。

もしマルチバイト系が利用できないのであれば自分で適切にエンコーディングして
mail()を使って送信するしかないですね。
mb_send_mail()は自動的にエンコーディングを行いmail()に投げてくれる関数ですから。

なにかエラーメッセージは表示されていませんか?
念のためmb_send_mailを実行したときにTrueが返ってきているか
確認してください。

<?php
if(mb_language('Japanese')){
echo "languageはJapaneseに設定されました。<BR>";
}else{
echo "languageはJapaneseに設定できませんでした<BR>";
}

if(mb_send_mail('xxx@xxx.xx.xx','やぁ','届いた?')){
echo "正常に処理されました。<BR>";
}else{
echo "正常に処理されませんでした。<BR>";
}
?>

MTAのログなんかも確認できると良いのですが
レンタルサーバーでは無理かもしれません。。。

ソースには問題無いはずですがEUCで保存されてますよね?

考えられる問題は
・その他の引数が入っていない(通常は必要なものは補完されますので必要ありませんが)
 念のため指定してはどうでしょうか。
 どこかのMLリストでReturnpathヘッダーを付けたら送信できた。という
 スレッドを見たことがあります。
 サーバー側で差出人なしのメールを破棄しているかもしれません。
 通常はphp.ini内のsendmail_from欄を参照し
 NULLであればroot@サーバー名 になるはずです。

・マルチバイト関数...続きを読む

Qphpでmb_send_mailを用いてメールの送信を試みておりますが、うまくいきません

phpでmb_send_mailを用いてメールの送信を試みておりますが、うまくいきません。
php.iniの現時点における設定は、以下の通りです。

[mail function]
; For Win32 only.
;SMTP = localhost
;smtp_port = 25

; For Win32 only.
;sendmail_from =

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
sendmail_path = "sendmail -t -i"

mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = UTF-8
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none;
mbstring.func_overload = 0
;mbstring.strict_encoding = Off

なお、phpのスクリプトでは、mb_send_mail関数を呼ぶ直前に、
 mb_language("ja");
 mb_internal_encoding("utf-8");
を実行しております。

また、html部では、<meta…タグにおいて、charset=UTF-8の宣言を行い、
このhtml部を含むphpファイルは、文字コードUTF-8にて格納し直しました。

原因をいろいろ探ったのですが、自力では無理のようです。
原因と考えられる点をどうか教えて頂くようにお願い致します。

phpでmb_send_mailを用いてメールの送信を試みておりますが、うまくいきません。
php.iniの現時点における設定は、以下の通りです。

[mail function]
; For Win32 only.
;SMTP = localhost
;smtp_port = 25

; For Win32 only.
;sendmail_from =

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
sendmail_path = "sendmail -t -i"

mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = U...続きを読む

Aベストアンサー

25番のファイアーウォールのポートが開いてないとか?
プロバイダーがメールサーバーをたてれないように25ポートをブロックしているとか?

QPHPでメールを送信するには

PHP超初心者です。

参考本をもとにPHPでメールを送信するということにチャレンジしているのですが、次のような文章が出ます。

Warning: mb_send_mail() [function.mb-send-mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in C:\Program Files\Apache Group\Apache2\htdocs\php10\mail.php on line 11
エラー:送信に失敗しました

参考本に書いてあるとおり、
php.iniのSMTP=localhost を自分が使っているoooooo@ocn.ne.jpに書き換え、sendmailには自分の別アドレスを記述したのですが。

11行目のエラーも何を指しているのかわかりません。

ご回答よろしくお願いします。


【mail.php】

<html>
<head><title>mail.php</title></head>
<body>
<?php
$address=$_POST['address'];
$subject=$_POST['subject'];
$message=$_POST['message'];
$header="Content-Type:text/plain;charset=iso-2022-jp";

mb_language("Japanese");
if(mb_send_mail($address, $subject, mb_convert_encoding($message,"JIS","EUC-JP"),$header)){
print("送信完了しました。");
}else{
print("エラー:送信に失敗しました");
}
?>
</body>
</html>



【mail_form.html】

<html>
<head><title>メールの送信</title></head>
<body>
<h2>メールの送信</h2>
<form action="mail.php" method="post">
宛先:<input type="text" name="address"><br />
件名:<input type="text" name="subject"><br />
本文:<br /><textarea name="message" rows="5" cols="30"></textarea><br />
<input type="submit" value="送信">
</form>
</body>
</html>

PHP超初心者です。

参考本をもとにPHPでメールを送信するということにチャレンジしているのですが、次のような文章が出ます。

Warning: mb_send_mail() [function.mb-send-mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in C:\Program Files\Apache Group\Apache2\htdocs\php10\mail.php on line 11
エラー:送信に失敗しました

参考本に書いてあるとおり、
php.iniのSMTP=localhost を自分が使っているoooooo@ocn.ne.jpに書き換え、sendmailには自分の別アドレスを記...続きを読む

Aベストアンサー

まだFromのところでつまづいてるみたいです。
下記の3点をチェックしてダメだったらお手上げかも。

1. php.iniはどこにおいてますか?
Windows上でphpを動かす場合、php.iniはC:\Windows以下になければphp.iniが有効にならない場合があります。
試しに、下記のようなファイルをどこかに作成してみてください。
<?php phpinfo(); ?>
この状態で、
php.iniの適当な設定を変更
→Apache再起動
→上記のファイルにアクセス(phpの設定情報が表示されます)
→php.iniの変更内容が反映されているか確認

この手順で、きちんと変更内容が反映されているか確認してみてください。
また、その際に「SMTP」と「send_mail_form」が設定されているかも確認しておくとよいです。

2. SMTPとsend_mail_fromの再確認
前項でも触れましたが
「php.iniで意図した内容に設定されているか。タイプミス等ないか」
「phpinfo()で確認した内容が、上記の設定と相違ないか」
もし、設定内容がphp.iniと異なる場合はphp.iniを設置するディレクトリをC:\Windows以下等にしてみてください。

3. $header変数にFrom行を加える
最悪、send_mail_fromが設定されていない場合でもSMTPサーバーが起動していれば
標準の設定でメールが送信されるはずです。

最初に提示して頂いたソースのうち、ヘッダ($header)を定義している部分を
昨日説明したように、下記の通り編集してみてください。

$header="Content-Type:text/plain;charset=iso-2022-jp";

$header = "Content-Type: text/plain; charset=iso-2022-jp\n";
$header .= "From: hoge@example.com";

「hoge@example.com」はあなたの自分のメールアドレスに変更してくださいね。
これをするだけで、少なくとも「Warning: mb_send_mail (略) on line 11」というエラーは発生しなくなるはずです。

まだFromのところでつまづいてるみたいです。
下記の3点をチェックしてダメだったらお手上げかも。

1. php.iniはどこにおいてますか?
Windows上でphpを動かす場合、php.iniはC:\Windows以下になければphp.iniが有効にならない場合があります。
試しに、下記のようなファイルをどこかに作成してみてください。
<?php phpinfo(); ?>
この状態で、
php.iniの適当な設定を変更
→Apache再起動
→上記のファイルにアクセス(phpの設定情報が表示されます)
→php.iniの変更内容が反映されているか確認

こ...続きを読む

QPHPでメールが送信できない

弊社でお客様のお問い合わせフォームをPHPで作成しているのですが、
お客様の環境でメールを送信することができません。


サーバー環境は以下の通りです。
Red Hat Linux 2.6.9
Apache/2.0.52
PHP 4.3.9


原因の調査で以下のようなチェックを行いました。

【お客様に御願いしたチェック】
1. サーバーでsendmailコマンドを利用してメールが送れるか?
送ることができる。
正しくキューイングされ、送信されることまで確認OK

2. php.iniのsendmail_pathの確認
sendmail_path は /usr/sbin/sendmail -i -tになっている。
/usr/sbin/sendmailはちゃんとある

3. mail()が使えないPHP
/usr/sbin/sendmail,/usr/lib/sendmailがなければmail()が使えないPHPがビルドされるケース。
標準のPHPを利用しているので、問題ない。

【弊社が担当したチェック】

1. メールを送信するPHPスクリプトの不具合
PHPスクリプト自体は正常に動作する。
php.iniのdispaly_errorsをONに変更してもエラーメッセージはでない。

2. 簡単なmail()関数を使用したチェック
以下のようなphpスクリプトで確認。
OKがブラウザに表示される。
<?php
if (mail("私のメールアドレス", "テスト", "テスト本文", "From:私のメールアドレス")) {
echo "OK";
} else {
echo "NG";
}
?>

何か原因があるのでしょうか?
どなたか教えてください。

弊社でお客様のお問い合わせフォームをPHPで作成しているのですが、
お客様の環境でメールを送信することができません。


サーバー環境は以下の通りです。
Red Hat Linux 2.6.9
Apache/2.0.52
PHP 4.3.9


原因の調査で以下のようなチェックを行いました。

【お客様に御願いしたチェック】
1. サーバーでsendmailコマンドを利用してメールが送れるか?
送ることができる。
正しくキューイングされ、送信されることまで確認OK

2. php.iniのsendmail_pathの確認
sendmail_path は /usr/sbin/sen...続きを読む

Aベストアンサー

がると申します。
一つには、きちんとsendmailが処理できているのかを、/var/logあたりのログで確認されるとよろしいかと思うのですが。
mail関数の戻り値は「送れたかどうか」ではないので。戻り値チェックはちょっと微妙かもしれません。

もう一つ…ぶっちゃけPHPのmail関数は事故が多いので(苦笑
popen とかを使って、普通にsendmailプロセス立ち上げて…という関数なりclassなり切ってしまったほうが、多分早いです。
原因も追及しやすいですし。

以上あまり参考にはならないかもしれませんが、逃げ道の方法を書いてみました。

QPHPsendmailにて送信元を変更

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

Aベストアンサー

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

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

"Form" → "From" の綴りの間違いだけだったりして?

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【MTA】postfixとsendmail【違い】

はじめまして。シアトルでシスアド見習いをしている者です。

今日みなさんにお聞きしたいのは、postfixとsendmailMTAの違いについてです。

いろいろな記事で比較されておりましたが、Google先生に聞いたところ
・sendmailは設定が複雑だけど未知のプロトコルにも対応している
・postfixは設定は簡単、MailDir構造を使用していて、SMTPプロトコルに特化
のような内容が沢山出てきました。

また、itmedia様の過去ログにて
・sendmailは送受信共にsendmailにて可能
・postfixは受信は受けるが、送信は外部MDA(?)
のような違いがあるとも書いてありました。

しかしながら、動作的にこれら二つのMTAが具体的にどう変わるのかについての説明がなされている記事が見当たらず、ここで質問させていただいた次第でございます。

内容としましては現在、システムが使用するMTAとして、現在postfixとsendmailがサーバーに入っております。
システムが使うMTAの設定は

/etc/alternatives/mta -> /etc/alternatives/sendmail.sendmail

となっています。
またMTAの候補は以下の二つです。

/etc/alternatives/sendmail.sendmail
/etc/alternatives/sendmail.postfix

そこで質問なのですがこのmtaのリンクをsendmail.sendmail -> sendmail.postfixに変更した場合、何か具体的に動作の違いは出てくるのでしょうか?

よろしくお願いいたします。

はじめまして。シアトルでシスアド見習いをしている者です。

今日みなさんにお聞きしたいのは、postfixとsendmailMTAの違いについてです。

いろいろな記事で比較されておりましたが、Google先生に聞いたところ
・sendmailは設定が複雑だけど未知のプロトコルにも対応している
・postfixは設定は簡単、MailDir構造を使用していて、SMTPプロトコルに特化
のような内容が沢山出てきました。

また、itmedia様の過去ログにて
・sendmailは送受信共にsendmailにて可能
・postfixは受信は受けるが、送信は外部MDA(?...続きを読む

Aベストアンサー

どちらもデフォルトの状態であればローカル配送のみでしょうから、SMTPとしての表面的な動作にそれほど違いはありません。

altanativesして不都合が生じるとしたら、コマンドベースのsendmailのリンクが張り替えられてオプションに違いがでてくるので、それを呼び出してるプログラム(CGIなど)がネイティブsendmail固有のオプションを付加している場合はエラーになるってくらいですかね。


まあそれはあくまでも表面的な動作としてであってです。内部的にはたくさん違いがありますよ。
SMTPサーバとして稼働済みのSendmailをPostfixに置き換えようとしているのだとしたら、話はもっとややこしくなると思います。

QリダイレクトでPOST

教えてください。

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

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

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

Aベストアンサー

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

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

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外部smtpサーバーを利用したメールの送信方法

お世話になります。
環境ですが、Linux(CentOs3.6)/php4.2.9、を使っています。

phpで、外部smtpサーバーを利用したメールの送信方法を調べています。
実現したい事は、
メインサーバーから、外部smtpサーバーAと外部smtpサーバーBを利用してメールを送信させたいと思っています。
方法をご存知の方がいらっしゃいましたらご教授下さい。

Aベストアンサー

phpのmail関数は基本的にsendmailの設定でメール送信しています(mb_send_mailも)。ですから、PHP側の設定と言うより、メール転送エージェント(MTA、メール送信サーバ)の設定によります。Sendmail、Postfix、qmail等のことです。要するに、PHPが入っているサーバのMTAから外部SMTPサーバに転送する訳です。設定方法はMTAによって異なります。最近では基本的にOP25B(25番ポートからの送信禁止)だと思いますので、設定に手こずる可能性がありますので注意して下さい。

もっとカスタマイズしたメール送信をしたい、と言う場合はPEARを使うと構築が簡単です。
http://pear.php.net/manual/ja/package.mail.php
送信は
http://pear.php.net/manual/ja/package.mail.mail.send.php
ポート設定や、SMTP-AUTHなSMTPサーバにも対応出来るので、ほとんどのサーバに対応可能かと思います。ただし、うまく組み合わせないと日本語の扱いではまるかもしれません。検索すればかなりヒットしますので、解決可能だと思いますが。

関係無い事かもしれませんが、PHP4.2.9はかなり古いですね。セキュリティ的にちょっと問題がある気がします。LAN内サーバならあまり問題無いですが、踏み台等にならないため、可能な限りアップデートを!

phpのmail関数は基本的にsendmailの設定でメール送信しています(mb_send_mailも)。ですから、PHP側の設定と言うより、メール転送エージェント(MTA、メール送信サーバ)の設定によります。Sendmail、Postfix、qmail等のことです。要するに、PHPが入っているサーバのMTAから外部SMTPサーバに転送する訳です。設定方法はMTAによって異なります。最近では基本的にOP25B(25番ポートからの送信禁止)だと思いますので、設定に手こずる可能性がありますので注意して下さい。

もっとカスタマイズしたメール送信をし...続きを読む


人気Q&Aランキング