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 "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\test.php on line 20
正しく設定されていないと思いますが、
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");
_