テスト環境でメールの送信テストをしています。
【環境】
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プログラムを...
-
phpでメール送信できません 原...
-
メールフォームのタイトルが文...
-
sendmailでエラーがでます
-
php 完了画面の送信メールのコ...
-
サーバーによってはmb_send_mai...
-
VBA 添付ファイルをつけてメー...
-
フォントの色を変えるには?
-
PHPのWARNINGをcatchするには
-
onedrive にexcelファイルをア...
-
PHP8を使うと、大量のWarningが...
-
バッチを用いたフォルダの自動移動
-
CSV出力にHTMLが入ってしまう
-
「クラス関数」「メンバ関数」...
-
index.phpって何ですか? 具体...
-
現在位置より2つ上のディレク...
-
透過PNGが透過されない!!
-
PHP 文字列を代入した配列を変...
-
PHPのif文でその処理を途中で抜...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
さくらサーバーにて、phpからメ...
-
php 完了画面の送信メールのコ...
-
メールフォームのタイトルが文...
-
PHPsendmailにて送信元を変更
-
PHPからメールを送る@さくらイ...
-
mailやmb_send_mail関数で、本...
-
mail関数を使った場合のReturn-...
-
mb_send_mail関数が利用出来ない
-
ワードプレス 予約システム
-
phpでのメール転送(添付ファイ...
-
VBA EXCELからメールを送...
-
複数行の文字列をメールのヘッ...
-
【初歩?】変数をセットできな...
-
Received-SPFでレンタルサーバ...
-
PHP CRONでメールの自動受信を...
-
PHPからのメールがこない
-
mb_send_mailでタイトルにハテ...
-
メールの本文が取得できない
-
PHPでトラックバック機能 HTTP...
-
POP Before SMTPでメールを送信...
おすすめ情報