私はPHPベースのCMSを含むウェブサイトを運営しており、このウェブサイトの唯一のユーザーです。 Webサイトには、登録されていないユーザーからEメールを受け取るための簡単なお問い合わせフォーム(名前、Eメール、電話番号、文字)があります。
一方では、このフォームのEメールを自分のEメールアカウントに直接送信したいと思います。
一方、サイト コンピュータの IP を良好なリストに配置するので、少なくとも一度はスパム ディレクトリに問題がないため、DNS レコードを設定しないことをお勧めします。
私が知っている限り、すべてのLinuxシステムで(PHPmail()
機能を介して)SMTPプロトコルを使用する基本的に3つの方法があります。
- メール転送エージェント(例
postfix
:)をインストールして設定します。 - Eメールプロキシアプリケーション(例
ssmtp
:潜在的なハッカーに見せるssmtp
プログラムがそのアカウントをプロキシとして使用できるように、設定ファイル内のプロキシEメールアカウントのアドレスとパスワード。 - この回答によると、3番目の方法で名前を付けることができます。メールバイナリファイルの送信。
そのような概念がありますか?メールバイナリファイルの送信それでは、最初の2つのオプションとどう違いますか?
ベストアンサー1
PHPから電子メールを受信する方法は3つあります。
mail()
人と会話をしたり、/usr/lib/sendmail
類似mail()
MTAとのSMTP会話(主にWindows用)- phpmailer SMTPを直接使用するPHPオブジェクトであり、TCPをサポートする同様のPHPコードです。
リストされている3つのオプションはすべてオプション1のバリエーションです。
Postfixとssmtpはどちらも、ユーザーが呼び出した後にPHPが呼び出すsendmailバイナリを提供しますmail()
。
sendmailにアクセスする4番目の方法はを使用することですpopen()
。この方法を使用する場合は、すべての引数に必ずこのshellescape()
方法を使用してください。数年前に買収エスケープが失敗したため、主要なWordPressの脆弱性がありました。これにより、その機能がから削除されますmail()
。
すべての場合にサーバーへの攻撃が成功すると、SMTP資格情報が公開されるため、他のシステムと共有しないでください。または、移植できないタイプである必要があります(たとえば、サーバーのSMTPアカウントがサーバーのIPアドレスに関連付けられている場合)。 IMAPパスワードは絶対に使用しないでください。パスワードが漏洩すると、身元(ドメイン名など)が盗まれます。