Windowsでローカルホストから電子メールを送信するには、php.iniでSMTPサーバーを変更する必要があることを知っていますが、これはWindowsでのみ有効です。
[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25
では、Linux OSから電子メールを送信できるようにするにはどうすればよいですか?
これは、ローカルホストから電子メールを送信するためのLinux Mint17で機能しました。
Sudo apt-get install sendmail
Debianとその変種(* buntuなど)を実行している場合は、_Sudo tasksel install mail-server
_を実行してメールサーバーをインストールできます。これにより、基本的な電子メール機能が設定されます。これは、コマンドライン_echo 'body' | sendmail [email protected]
_で実行するか、他の人が言及しているように、PHPでmail($to, $subj, $msg)
を実行することでテストできます。
ローカルホスト(WAMP、XAMP、またはLAMP)からメールを送信するには、PHPMailerパッケージを使用できます(PHPMailerを ここ からダウンロード)。
まず、「php.ini」を編集する必要があります。このファイルを見つけるには、WAMPサーバーから次のコードを使用してphpinfoを表示します。 1つのphpファイルを作成し、このコンテンツを追加します。
<?php
echo phpinfo();
?>
「ロードされた構成ファイル」を検索します。これがphp.iniへのパスになります。
このファイルで、extension = php_openssl.dllに指定されている;(セミコロン)を削除します。
PHPMailerX.X.Xパッケージをダウンロードした後
抽出->フォルダ全体をプロジェクトフォルダにコピーします。
テストフォルダには、testemail.phpというファイルが1つあります。
必要に応じてパラメータを変更してください。 (以下に示す例)。
次に、ブラウザで127.0.0.1/PHPMailer/test /testemail.phpと入力します。
次に、電子メールが送信された場合は成功したメッセージが表示され、そうでない場合はエラーメッセージが表示されます。例:
//add these codes if not written
$mail->IsSMTP();
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->SMTPSecure = "ssl"; // sets the prefix to the servier
$mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
$mail->Port = 465;
//You have to change these parameters to your requirements.
//…….code….
$mail->Username = “[email protected]”; // GMAIL username
$mail->Password = “abcdefgh”; // GMAIL password
//……..code….. There are many other functions to attach file etc.. For that refer doc file.
$mail->AddAddress(“[email protected]”,”Nick name”);
//…….code…..
Php.iniファイルには、次のようなスタブがすでに存在しているはずです。
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
sendmail_path = /usr/sbin/sendmail -t -i
指定されたコマンドがファイルシステムに存在し、MTAが正しく(インストールおよび)構成されていることを確認してください。
MTAをまだ設定していない場合は、Linuxシステムで利用できる 多くのMTA があります。sendmail(構成が複雑/難しいが、優れたパフォーマンスと驚くべき柔軟性)またはpostfix(驚くべき柔軟性)をお勧めします。設定が簡単で、すぐに使用できる優れたセキュリティ)。
'mail' cliクライアントを使用する方法、またはサーバー上で別のMUAを実行して、MTAの構成をPHP統合から分離する方法を学びます。
Sendmailまたはeximを設定します。パッケージマネージャーでいずれかのオプションを検索してインストールします。 Senmailは一般的であり、それを設定することでうまくいくはずです。 LinuxのmailコマンドはMUAまたはメールユーザーエージェントであり、メールユーザーエージェント(MUA)は、電子メールの送受信に使用されるアプリケーションであり、より多くのクライアントです。一方、メール転送エージェントは、クライアントサーバーアプリケーションアーキテクチャを使用して、あるコンピューターから別のコンピューターに電子メールを転送します。
SendmailなどのMTAをインストールする必要があります(Debianのような一部のディストリビューションはeximまたはおそらくpostfixを好むようです)。
PHPのSMTP実装を使用することは、RFC5321「4.5.4.1。送信戦略:すぐに送信できないメールはキューに入れられ、送信者によって定期的に再試行されなければならない」の再試行要件を尊重しないため、悪い考えです。
このRFCの「MUST」要件への違反は、一般に堅牢性を低下させ、ほとんどの場合、正しい相互運用を妨げます。これが、ローカルMTA(LinuxまたはWindowsの場合)を使用する必要がある理由です。理想的には、MTAにメッセージを送信するための非SMTPメカニズムが必要です。そのため、PHPはメールを送信するために「sendmail」を実行する必要があります。MTAがデフォルトの場合、これを実行する傾向があります。インストールされています。