テスト環境でメールの送信テストをしています。
【環境】
OS=Amazon Linux(AMI 2016.03.1)
インストール環境
sendmail.x86_64 = 8.14.4-8.12.amzn1
php.x86_64 = 5.3.29-1.8.amzn1
php-cli.x86_64 = 5.3.29-1.8.amzn1
php-common.x86_64 = 5.3.29-1.8.amzn1
httpd.x86_64 = 2.2.31-1.7.amzn1
httpd-tools.x86_64 = 2.2.31-1.7.amzn1
【状況】
windows環境からsshで接続して操作しています。
AWS EC2から社内の自分のメールアドレスへ向けて送信テストをしています。
【内容】
mail()を使った関数では、社内アドレスにメールは届くのですが、mb_send_mail()を使うと、実行したWEB画面が真っ白で、メールも届いておりません。
社内アドレスに届くソース(mail関数)
-------------------------------
<?php
#日本語メール送信
$to = "xxxxxx@xxx.co.jp"; #宛先
$subject = "送信テスト"; #題名
$body = "本文テスト"; #本文
$from = "test@localhost.localdomain"; #差出人
if (mail($to, $subject, $body, "From:".$from)){
print ("成功");
}else{
print ("エラー");
}
?>
-------------------------------
php.ini を編集し以下を設定
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.func_overload = 7
-------------------------------
届かないmb_send_mailソースは、上記ソースの「mail」の部分を「mb_send_mail」へ変更したものです。
あと、現在利用可能な関数リスト出したところ、mb_send_mailの記述がありませんでした。
関数リストを確認したソース
-------------------------------
<pre>
<?php
print_r(get_defined_functions());
?>
</pre>
-------------------------------
関数リスト、mailは829で定義されていますが、mb_で始まる関数が1つもありませんでした。
Array
(
[internal] => Array
(
[0] => zend_version
[1] => func_num_args
[2] => func_get_arg
#中略
[829] => mail
#中略
[1012] => zip_entry_compressedsize
[1013] => zip_entry_compressionmethod
)
[user] => Array
(
)
)
-------------------------------
おそらく、この「internal」へmb_send_mailが登録されれば、mb_send_mail()関数が使えると思うのですが、いろいろサイトを巡回してもmb_send_mailを定義するような記述はなく、通常はデフォルトで登録されているのかな?と思いました。
mb_send_mail()関数を使ってメール送信出来るようにするにはどうすれば良いでしょうか?
もしくは、mb_send_mailを自身で定義する場合はどうすれば良いでしょうか。
PHPの学習をはじめて2週間目ですが、問題が解決せずずっと悩んでおります。
良きお知恵を拝借出来ればと思い、質問させて頂きました。
よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
phpinfo()で確認しましょう。
mb_send_mailは、mbstring拡張モジュールが入っていないと使えません。
phpinfo の上の方にあるConfigure Commandの中に–enable-mbstring–という記述があれば問題なく利用できます。
いいいちろう様
早速の回答ありがとうございます!
数日悩んだ事が解決しました。
ご指摘頂いたphpinfo()で確認しましたら、Configure Commandの中に「-enable-mbstring-」記述が無かったので
yumより拡張モジュールをインストールしました。
$sudo yum install php-mbstring -y
そして、php.iniの[mbstring]以下の項目を修正。
httpdのデーモンをリスタートしましたら
print_r(get_defined_functions()); で 1040番目に関数が登録されました。
[1040] => mb_send_mail
早速、作成していたphpファイルをブラウザより実行したら
無事、mb_send_mail()関数でメールの送信が出来ました。
ありがとうございました。
【mbstring拡張モジュール】この一言のおかげで問題が解決出来ました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Gmail 【お助け!】サーバーからのメール送信でGmailに送信されない問題について 1 2023/06/20 22:03
- PHP phpのメールフォームの完了画面でメール受信のコードを書いています。 1 2023/05/31 11:39
- PHP php 完了画面の送信メールのコードを書いているのですが・・・ 2 2023/06/02 12:01
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
- Gmail 家から自分のg-mailで添付ファイル付きのメールを4通、職場の自分宛てに送りました。次の日に見ると 3 2022/09/08 12:35
- Outlook(アウトルック) Excel表のメールアドレスリストからoutlookの宛先を設定、メールを送信する方法 2 2022/09/16 05:29
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Outlook(アウトルック) Outlookのメール送信を取り消す方法 1 2022/11/17 13:10
- 英語 この"e-mail"が複数形でもなく、無冠詞なのはなぜですか? 「表現のための実践ロイヤル英文法」に 1 2022/07/10 16:12
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
さくらサーバーにて、phpからメ...
-
PHP、PEARでのメール送信での送...
-
mail関数を使った場合のReturn-...
-
PHPからのメールがこない
-
メールフォームのタイトルが文...
-
ローカル環境でのメール送信
-
phpでmb_send_mailを用いてメー...
-
mb_send_mail関数が利用出来ない
-
こちらはただの直列処理ですか?
-
フォントの色を変えるには?
-
form actionで二つ送信先を指定...
-
onedrive にexcelファイルをア...
-
Apacheでhttp://localhost/が表...
-
シェルスクリプトからphpファイ...
-
FTPコマンドでディレクトリごと...
-
.htaccessにphp_valueが使用できな
-
別PHPファイルに変数を渡す
-
phpの中でphpを書けないか
-
.phpと.incファイルの違いはな...
-
PHPのif文でその処理を途中で抜...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
php 完了画面の送信メールのコ...
-
さくらサーバーにて、phpからメ...
-
メールフォームのタイトルが文...
-
PHPsendmailにて送信元を変更
-
mb_send_mail関数が利用出来ない
-
PHPからロリポップ!のメールサ...
-
VBA 添付ファイルをつけてメー...
-
mailやmb_send_mail関数で、本...
-
sendmailでエラーがでます
-
PHPでの仮登録時の会員認証メー...
-
phpでメール送信できません 原...
-
mb_send_mail() 第 4、5 引数の...
-
PHPMailerのコードエラーが解決...
-
ローカル環境でのメール送信
-
PHPからメールを送る@さくらイ...
-
PHPでメールを送信するには
-
mb_send_mailについて
-
mail関数を使った場合のReturn-...
-
メールの本文をSmartyにしたい
-
サーバーによってはmb_send_mai...
おすすめ情報