web-dev-qa-db-ja.com

PHP関数mail()が機能していません

PHPコーディングでmail()関数を使用しましたが、メールを送信できませんでした。先に進む前に、mail()関数を使用するコンテキストについて詳しく説明します。

私は自分のサイトをホストしなかったので、ローカルホストにあります。 smtp、ポートsendmail_pathなどを設定しました。

たくさん検索した後、メールサーバーをダウンロードする必要があるようです。無料のsendmailサーバーをダウンロードし、サイトの提案どおりに構成しました。しかし、さらに無駄になったのは、ローカルホストだけでなくサイトをホストするまでメール機能を使用できないと誰かが言っていたことです。案内してください。

<?php
   $from = "[email protected]"; // sender
   $subject = " My cron is working";
   $message = "My first Cron  :)";

   // message lines should not exceed 70 characters (PHP rule), so wrap it

   $message = wordwrap($message, 70);

   // send mail

   ini_set("SMTP","localhost");
   ini_set("smtp_port","25");
   ini_set("sendmail_from","[email protected]");
   ini_set("sendmail_path", "C:\wamp\bin\sendmail.exe -t");

   mail("[email protected]",$subject,$message,"From: $from\n");

   echo "Thank you for sending us feedback";

?>

この私のsendmail構成ファイル:

smtp_server=smtp.gmail.com
smtp_port=587
smtp_ssl=auto

;default_domain=domain.com
[email protected]
auth_password=8888

force_sender=j*****@gmail.com

( ! ) SCREAM: Error suppression ignored for
( ! ) Warning: mail() [<a href='function.mail'>function.mail</a>]: Failed to connect to      mailserver at &quot;localhost&quot; port 25, verify your &quot;SMTP&quot; and &quot;smtp_port&quot;    setting in php.ini or use ini_set() in C:\wamp\www\test.php on line 20
8
user1195450

正しく設定されていないと思いますが、

xAMPPを使用している場合は、localhostから簡単にメールを送信できます。

たとえば、Gmailがメールを送信するように_C:\xampp\php\php.ini_および_c:\xampp\sendmail\sendmail.ini_を設定できます。

_C:\xampp\php\php.ini_で_extension=php_openssl.dll_を見つけ、その行の先頭からセミコロンを削除して、localhostのgmailでSSLが機能するようにします。

php.iniファイルで_[mail function]_を見つけて変更します

_SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = [email protected]
sendmail_path = "C:\xampp\sendmail\sendmail.exe -t"
_

(上記のメール送信パスのみを使用すると機能します)

_C:\xampp\sendmail\sendmail.ini_を開きます。 sendmail.iniの既存のコードをすべて次のコードに置き換えます

_[sendmail]

smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
[email protected]
auth_password=my-gmail-password
[email protected]
_

これで完了です!!メール機能を使用してphpファイルを作成し、localhostからメールを送信します。

Update

まず、PHPインストールにSSLサポートがあることを確認してください(phpinfo()からの出力で "openssl"セクションを探してください)。

PHP.iniで次の設定を設定できます。

_ini_set("SMTP","ssl://smtp.gmail.com");
ini_set("smtp_port","465");
_
23