• 締切済み

linux(centos) + xampp phpでmailコマンドを利用したい

LesserSEの回答

  • LesserSE
  • ベストアンサー率71% (5/7)
回答No.1

こんにちは 見当違いの回答でしたらご容赦ください。 原則、XAMPPもLAMPPも構成は同じですので /opt/xampp/etc/php.ini(デフォルトインストール時) の [mail function] SMTP = xxxx.xxxx.co.jp smtp_port = 25 で動作するはずなのですが・・・。 Linuxで利用する場合、FWの設定やSELinux等の設定が必要です。 もう少し現状の環境を教えていただけると 解答がつきやすいのではないかと思います。 参考案で申し訳ありません。

nisi_do
質問者

お礼

いろいろ試した結果下記の通り?でした。ご参考まで。 Linux + xamppでphpのmailコマンドでメール送信する場合php.iniの[mail function]の指定は無効のようです。 下記の2通りの方法があるようです。 1.linux 上にmailサーバーを構築。 (他のサーバーへ"relayhost"を利用してメールを転送し利用) 2.phpのpearであるMail及びMail_MIMEを導入しsmtpサーバーに送信する。

nisi_do
質問者

補足

わざわざご返答ありがとうございます。 当方の環境構築に問題がありlinuxの再構築中です。 構築後、LesserSE様の回答内容でトライしてみます。 また質問するかとは思いますがよろしくお願いします。

関連するQ&A

  • PHPでメールの送信ができない

    xampp1.8.0環境から PHPのmb_send_mailでメールの送信をしようとしています。 php.ini SMTP = smtp.xxx.ne.jp (プロバイダから指定されてるもの) smtp_port = 25 xampp1.7.7くらいの環境のときは↑の設定のみで送信できたのですが 新しいバージョンに変えてから送れなくなりました。 古いバージョンのphp.iniと差し替えると送信可能になります。 上記の2行以外でメールの設定に関わる部分はありますでしょうか?

    • 締切済み
    • PHP
  • Win7にxampp mail関数が動かない

    お世話になります。 xamppにwordpressをインストールして、ローカルで動かそうと思ったのですが、どうしても動きません。 ワードプレスを教えてあげることになったのですが、相手の方がwin7の方で、xamppにwordpressをインストールするところまではうまくいくのに、なぜかログインすることができないのです。 パスワード違いでエラーになるんです。 パスワードの再発行をするのに、 なので、xamppのphp.iniをいじって、 [mail function] ; For Win32 only. ; http://php.net/smtp SMTP = smtp.live.com ; http://php.net/smtp-port smtp_port = 25 (ホットメールを利用。) にしてみたのですが、だめでした。 パスワードの再発行をすると、mail関数が動かないというエラーが出てしまいます。 念のためポート番号を587にしても結果は同じでした。 ちなみにVistaでやった私は一度もエラーが起きず、問題なく動かすことができています。 作業環境は OS:Windows7 Ult 64bit xamppもワードプレスもいずれも最新です。 心当たりのある方、ぜひ教えてください。

    • 締切済み
    • PHP
  • PHP/XAMPPのローカルホストからのメール送信

    1) 困っている点 PHP初心者です。PHPでXAMPPを用いてお問い合わせフォームからローカルホスト経由でメールを飛ばすことができるよう環境設定をしていますが、つまづいています。ご教示くださるようお願いします。他に試す箇所、確認すべき個所はありますでしょうか。 環境条件は、Windows11を使用。メールアドレスは外部プロバイダーメール(OCNの@dream.com)を用いて設定を試みています。XAMPPはApache/2.4.56 (Win64) OpenSSL/1.1.1t PHP/8.2.4 Server at localhost Port 80。 (なお、一通り、PHPの基本的なプログラムは記載し、Marina DB含め、ローカルホストからメールを飛ばさないPHPコードは無事動いています。) 2)PHPのコード ローカルホストから自分のgmailにメールに飛ばすテスト hogehoge@gmail.comのhogehogeの箇所は自分のメールアドレスを記載。PHPではエラーを表示するようにさせた。 <?php error_reporting(E_ALL); ini_set('display_errors', 1); mb_language('Japanese'); mb_internal_encoding('utf-8'); $to = 'hogehoge@gmail.com';  ←hogehogeは自分のgmailアドレス $subject = 'メール送信テスト:test for PHP'; $message = 'メール送信テスト:test for PHP'; $headers = 'From: 自動送信 <hogehoge@dream.com>' . "\r\n"; ←hogehogeは自分のプロバイダーアドレス $headers .= 'Content-Type: text/plain; charset=utf-8'; if(mb_send_mail($to, $subject, $message, $headers)) { echo "送信完了"; } else { echo "送信失敗"; } ?> 3) phpホルダー内のphi.iniの記載 (一部抜粋) [mail function] ; For Win32 only. ; https://php.net/smtp SMTP=localhost  ← 修正 https://php.net/smtp-port smtp_port=25     ← 修正 sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t" ← 修正 上記のSMTP、Portのパラメータは下記のHPを参考にし、倣った。 https://miya-system-works.com/blog/detail/xampp-send-mail/ *なお、ここの箇所では下記のパラメータでも行ったがNG。エラーメッセージは5)ii)に記載。 このパラメータはsendmail.iniで入力したものと同じ。 SMTP = smtp.ocn.ne.jp smtp_port = 465 sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t" 4) sendmail内ホルダーのsendmail.iniの記載 (一部抜粋) hogehogeの箇所は自分のアドレス、P/Wを入力。 pop3_~=~の箇所は三行空欄。 smtp_server=pop.ocn.ne.jp ← 修正(プロバイダー案内通り) smtp_port=465 ← 修正 (プロバイダー案内通り) smtp_ssl=auto ← 修正 auth_username=hogehoge@dream.com ← 自分のアドレスに修正 auth_password=hogehoge       ← 自分のPWに修正 ; if your smtp server uses pop3 before smtp authentication, modify the ; following three lines. do not enable unless it is required. pop3_server=       ← デフォルトのまま空欄 pop3_username=     ← デフォルトのまま空欄 pop3_password=     ← デフォルトのまま空欄 force_sender=hogehoge@dream.com ← 自分のアドレスに修正 5) ブラウザーでの表示 (上記2)のコードを走らせた後) ポートに接続できないとのエラーメッセージ。しかし、6)に記載したThunderbirdからはポート:465からメールを送れている。 i) SMTP:localhost,、SMTPポート:25の場合 Warning: mb_send_mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\xampp\htdocs\test\test_sendmail_2.php on line (mb_sendとしたPHPコードのラインの箇所) 送信失敗 ii) SMTP :smtp.ocn.ne.jp、 SMTPポート:465の場合 Warning: mb_send_mail(): Failed to connect to mailserver at "pop.ocn.ne.jp" port 465, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\xampp\htdocs\test\test_sendmail_2.php on line (mb_sendとしたPHPコードのラインの箇所) 送信失敗 6)補足 なお、プロバイダーメールアドレス、PWは念のためローカルPC上にメールソフトを新規にThunderbirdを落とし、設定したところ、溜まっていたプロバイダーメールは全て落ちてきたのでPWに間違いはないことを確認済み。その際、SMTPサーバー名とsmtp_portは自動検出されたので、手打ちはしていない。Thunderbirdでは自動的にSMTPサーバー名:smtp.ocn.ne.jp、ポート:465で設定されていた。 以上よろしくお願いします。説明不足、用語の使い方で適切でない箇所がありましたら、修正、追記します。

  • xamppとWindows環境でPHPからメールを送れない

    xamppとwindowの環境でローカルからphpを使ってメールを送りたいのですが、なかなかうまくいきません。 誰か詳しい方、教えて頂きたいです! phpの記述は以下のようにしています。 <?php $id = $_POST["id"]; $mail = $_POST["mail"]; $message = $_POST["message"]; mail("***@yahoo.co.jp", "id", "mail",$message);(←15行目です) ?> php.iniの設定は以下のようです。 [mail function] ; For Win32 only. SMTP = smtp.mail.yahoo.co.jp smtp_port = 25 ; For Win32 only. sendmail_from = ***@yahoo.co.jp ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). sendmail_path = "C:\xampp\sendmail\sendmail.exe -t" yahooデリバーの登録もやりましたが、 Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in C:\xampp\htdocs\php0808\b.php on line 15 のようなエラーが出ます。 考えられるのはyahooのPOPでのID認証が問題かと思っていますが、その方法も分かりません。 わかる方いらしゃいましたら教えてください。

    • 締切済み
    • PHP
  • xamppでPHPのフォームからメール送信できない。

    xamppでPHPのフォームからメール送信できない。 phpを勉強し始めた初心者です。お世話になります。 phpで会員登録出来て申し込みも出来るフォームをつくりました。 他の場所(LANで繋がれた環境)では登録も保存も出来、メール(自分のgmailアドレス) に送られて来るように作成してあるのですが、そこではちゃんとメールが届きますが 自宅で同じように設定して送信すると 登録は出来てDBに保存されるのですがメールが送られてきません。 自宅はデスクトップのPCにモデムにケーブルをつないでいます。 プロバイダーはSonetウィズフレッツ光マンションタイプです。 他の場所の違いはDNSサーバーくらいなのですが、 それをXamppの中のMercuryに設定しても うまくいきません。 sonetやNTTに聞いても「特にブロックするようなことはしていない」との事で 問題なく動くようですが・・一度もメールがおくられてきていません。 やったこと ■php.iniの設定変更【下記参照】C:\xampp\apache\bin\php.ini ●ここの設定を↓ [mail function] ; For Win32 only. SMTP = localhost smtp_port = 25 ●このように変えたり↓してもだめでした。 [mail function] ; For Win32 only. SMTP = mail.XXX.so-net.ne.jp smtp_port = 587 ●この辺はコメントをはずしています。↓ ; For Win32 only. ;sendmail_from = exsample@gmail.com ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). sendmail_path = "C:\xampp\sendmail\sendmail.exe -t" [mbstring] ; language for internal character representation. mbstring.language = Japanese ; internal/script encoding. ; Some encoding cannot work as internal encoding. ; (e.g. SJIS, BIG5, ISO-2022-*) mbstring.internal_encoding = UTF-8 ■mercuryの設定 コマンドプロンプトでipconfig/allで DNSserverを調べると 二つでてきたので(プライマリとセカンダリ?) プライマリのほうだけ入れたり 両方入れたり セカンダリだけいれたり 試しましたが全て駄目なようです。 繋がらないので試したこと ●ウイルスソフト(アバスト)を無効にした。 ●ファイヤーオールを無効にした。 XAMPP (Basispaket) version 1.6.8 windowsXP ブラウザfirefox3.6.8 なにか設定しないと動かないのでしょうか? 一応 画像添付します。 以上ですが他の情報が必要でしたらおっしゃっていただけたらと思います。 宜しくお願いします。

    • ベストアンサー
    • PHP
  • CentOS7×apache×php メールを送信

    CentOS7×apache×php×外部smtpからメールを送信したいです。 しかし、上手く行きません。 【環境】 LAN内のPCにCentOS7をインストールし、apacheとphpをインストールしました。 それ以外のものpostfixなどは入っていないとします。 クライアントPCはWindows10です。 phpの動作確認は、Windows10のPCからブラウザでphpinfo()が見れるところまでできています。 【目標】 下記のphpをブラウザで参照すると、「メール送信に成功致しました。」が出て、メールが届くようにする。 [test_mb_send_mail.php] <?php $sTo = 'adr@yahoo.co.jp'; $sFromMail = 'adr@独自ドメイン.jp'; $sSubject = '件名:メール送信テスト'; $sHeaders = "From: {$sFromMail}\r\n"; $sMessage = '本文:テスト'; //送信処理 mb_language("Japanese"); mb_internal_encoding("UTF-8"); if(mb_send_mail($sTo, $sSubject, $sMessage, $sHeaders)){ echo 'メール送信に成功致しました。<br/>'; }else{ echo 'メール送信に失敗致しました。<br/>'; } ?> [test_mb_send_mail.php] 【メールアドレス】 メールアドレスは2つ用意しています。 adr@yahoo.co.jp ・・・ yahooで作ったメール。thunderbirdメーラで普段使っています。 adr@独自ドメイン.jp ・・・ 契約しているさくらインターネットで作ったメール。thunderbirdメーラで普段使っています。 どちらを受け側、送り側にしても構いませんが、とりあえず、adr@yahoo.co.jpを送り側にします。 【thunderbirdメーラに登録しているsmtpの情報】 smtp.mail.yahoo.co.jp 465 adr@yahoo.co.jp 通常のパスワード認証 SSL/TLS mail.独自ドメイン.jp 587 adr@独自ドメイン.jp 通常のパスワード認証 STARTTLS 【/etc/php.iniの変更箇所】 [mail function] ; For Win32 only. ; http://php.net/smtp SMTP = localhost ; http://php.net/smtp-port smtp_port = 25 ; For Win32 only. ; http://php.net/sendmail-from ;sendmail_from = me@example.com  ↓ ↓ ↓ [mail function] ; For Win32 only. ; http://php.net/smtp SMTP = smtp.mail.yahoo.co.jp ; http://php.net/smtp-port smtp_port = 465 username = adr@yahoo.co.jp password = パスワード ; For Win32 only. ; http://php.net/sendmail-from sendmail_from = adr@yahoo.co.jp 【状況】 「メール送信に失敗致しました。」という自分で設定したメッセージが出ます。 具体的に何がいけないのか? 何かを確認しないといけないなら、具体的に何を確認したらよいのか知りたいです。 以上、宜しくお願い致します。

    • ベストアンサー
    • PHP
  • phpでメール送信

    phpでメールを送信しようとすると、 Warning: mb_send_mail() [function.mb-send-mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() というエラーが出てしまいます・・・。 何が原因なんでしょうか?Localhostの原因でしょうか?

    • 締切済み
    • PHP
  • PHPでメールフォームの送信について

    PHPを勉強して居る者です。 自分のPCにXAMPPをインストールして、 フォームの確認をしたところエラー表示が出ます。 Warning: mail() [function.mail]: Failed to connect to mailserver at "○○○" port 587, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Program Files\xampp\htdocs\test\download_00\mail_submit.php on line 54 php.iniの設定はしました。 ローカルではエラーが出るものの、サーバーにアップしてみたところ、正常にフォームは動きました(ただメールのタイトルが文字化け してました) 文字化けに関しては調べようと思います。 ローカルサイトでのフォームの確認は無理なのでしょうか? 駄文で申し訳ございませんが、宜しくお願い致します。

    • 締切済み
    • PHP
  • xamppでメール送信の設定

    すみません。 XAMPPでメール送信の設定を行いたいのですが、設定方法が分かりません。 いろいろ調べたのですが、バージョンが違っているのか?良く分かりません。 php.iniのどの場所を設定したらいいのでしょうか? 教えてください。 xamppは1.72の最新です。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHP でmb_send_mailが上手くいかない

    PHP初心者です。現在、自分のパソコンにXAMPPをインストールして、 Apacheを起動し、PHPのサンプルを勉強しいています。 mb_send_mail自体はTRUEで返ってくるのに、メーラーには何も届きません。 書籍やネットにあったサプルをいろいろ調べたのですが、 みな、同じ現象です。 php.iniの設定は下記の通りです。(phpは5.4.7) [mail function] ; XAMPP: Comment out this if you want to work with an SMTP Server like Mercury SMTP = localhost smtp_port = 587  <----25にしても変わりませんでした。 ; For Win32 only. http://php.net/sendmail-from sendmail_from = postmaster@localhost PHPのソース <?php mb_language("Japanese"); mb_internal_encoding("UTF-8"); if (mb_send_mail("cy0***@md.point.ne.jp", "テストメール", "これはテストです。", "From: chibikind***@yahoo.co.jp")) { echo "メールが送信されました。"; } else { echo "メールの送信に失敗しました。"; } ?>

    • 締切済み
    • PHP