web-dev-qa-db-ja.com

PHP、LAMPP、PostFixでメールを送信する

私は丸2日間試してきましたが、最も簡単なことをすることができません。

問題:PHPから私のメールアドレスへのメール送信が機能しません

WindowsおよびSendmail(SendmailはXAMPPパッケージ)以前、すべてがOKでした。ただし、LinuxのXAMPPパッケージ(1.7.7)には、Sendmailが統合されていません。だから少し調べてみたところ、PostfixがLAMPP環境によりよく適合していることがわかりました。


これまでに試したこと:

Postfixをインストールし、それを私のプライベートeMailプロバイダーのsmtp-serverを使用(そのように設定したかった) Windowsで行いました)。したがって、私はphp.iniを次のように構成しました。

[mail function]
; For Win32 only.
;SMTP = localhost
;smtp_port = 25

; For Win32 only.
;sendmail_from = [email protected]

sendmail_path = /etc/postfix
mail.add_x_header = On

「Win32のみ」のものはコメントアウトしていることに注意してください。 / etc/postfix/main.cfこのようになります:

smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
myhostname = ubuntu
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
sender_canonical_maps = hash:/etc/postfix/sender_canonical
mydestination = ubuntu, localhost.localdomain, localhost
relayhost = mail.gmx.net
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only

/ etc/aliasesは変更されていません:

# Required aliases
postmaster: root
MAILER-DAEMON:  postmaster

# Common aliases
abuse:      postmaster
spam:       postmaster

/ etc/postfix/sasl_password

my.providers.smtp my_login:my_password

/ etc/postfic/sender_canonical:

postmaster [email protected]

どうなるか:

だから私がするとき

> Sudo /etc/init.d/postfix start

すべてが正常に動作しているようで、/ var/log/mail.logのコメント: "ubuntu postfix/master [9720]:デーモンが起動しました-バージョン2.8.5 、構成/ etc/postfix "

しかし、PHPスクリプト(WindowsとSendmailで正常に動作しました)を実行すると、スクリプトが実行され、何も起こらず、エラーも記録されません。


実際に達成したいこと:

私はローカルでeコマースWebサイトで作業しています。専用のWebサーバーで正常に実行されますが、明白な理由でローカルで実行したいです。場合によっては、メールを送信しますが、Thunderbirdまたはその他の方法で受信できるようにしたいだけです。ここでPostfixを使いすぎていますか?メールを受信する必要はありません。送信されたメールを何らかの形で表示したいだけです。この問題に役立つ段階的なチュートリアルを見つけることができなかったようです(SenmailもPostfixも関係ありませんが、正直なところ、私はLinuxが初めてです)。

9
Quasdunk

Php.iniで次のようにします。

sendmail_path = /etc/postfix

Sendmail(または互換性のある)バイナリへのパスでなければなりません。
正しくないpostfixの設定ディレクトリに設定しました。

歴史的な理由から、通常、/usr/bin/sendmailは互換性リンクとして維持されます。
sendmailが最初にあり(推測)、インストールされたMTAにあると仮定することはほとんどすべてです。そうでない場合、置換はシンボリックリンクを作成し、何も壊れないようにします。

13
Caesium

ローカルホスト(WAMP、XAMP、またはLAMP)からメールを送信するには、PHPMailerパッケージを使用できます

  • Githubからダウンロードするには、ここをクリックしてください https://github.com/shashidhark/PhpMailer そして、readmeファイルに記載されている指示に従ってください。

これは、readmeファイルで指定されたものと同じ命令になります。

WAMP(ウィンドウ):

まず、「php.ini」を編集する必要があります。このファイルを見つけるには、WAMPサーバーから次のコードを使用してphpinfoを表示します。 C:/ wamp/www /内に1つのphpファイル[setting.php]を作成し、そのファイルに次のコンテンツを追加します。

<?php
     echo phpinfo();
?>

ブラウザでlocalhost/setting.phpと入力します。そこで、「php.ini」へのパスとなる「Loaded Configuration File」を検索します。

php.iniファイルで、 `extension = php_openssl.dllに指定された;(半コロン)を削除します。サーバーの設定は終了しました...

  • GithubからPHPMailerフォルダーをダウンロードした後、
  • 展開->フルフォルダーをプロジェクトフォルダー、つまりC:/ wamp/www /にコピーします
  • Index.phpファイルを見つけます。
  • 必要に応じてパラメーターを変更します。
  • 次に、ブラウザでlocalhost/PHPMailer/index.phpと入力します。
  • その後、電子メールが送信された場合は成功メッセージが表示され、そうでない場合はエラーメッセージが表示されます。

LAMP(Linux):

  • Linuxの場合、WAMPの最初のポイントで説明したように、php.iniファイルを編集する必要はありません。

  • もう1つの変更点は、プロジェクトまたはドキュメントルートフォルダーが異なることです。

  • Linuxでは、デフォルトのドキュメントルートフォルダは/ var/wwwになります
  • ドキュメントルートフォルダは簡単に変更できます。その訪問のために https://stackoverflow.com/a/17612396/192594
  • PhpMailerをこのドキュメントルートフォルダーにコピーし、必要に応じてindex.phpを編集します。
  • 次に、ブラウザーでlocalhost/PhpMailer/index.phpと入力します。
1
shashidhara

LocalhostからGmailを介して(sendmailパッケージを使用して)メールを送信するには、 PHP + Ubuntu localhostからGmailフォームを使用してメールを送信 が別の回答になる可能性があります。

0
Vikas Dwivedi