PHP、LAMPP、PostFixを使用したメールの送信


9

今から2日間試してみましたが、最も単純なものを機能させることができません。

問題:PHPから私の電子メールアドレスへの電子メールの送信が機能しない

私は以前にWindowsSendmail(SendmailはXAMPPパッケージ内にありました)で作業しており、すべて問題ありませんでした。Linux用のXAMPPパッケージ(1.7.7)には、Sendmailが統合されていません。少し調べたところ、PostfixがLAMPP環境に適していることがわかりました。


これまでに試したこと:

Postfixをインストールし(Windowsのように)私のプライベートメールプロバイダーのsmtp-serverを使用するように設定したいと思いました。ですので、php.iniを次のように設定しました。

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

; For Win32 only.
;sendmail_from = me@example.com

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 my.email@ddress.com

何が起こるのですか:

だから私がするとき

> sudo /etc/init.d/postfix start

すべてが正常に動作するようだと/var/log/mail.logは言う:"Ubuntuの接尾/マスター[9720]:デーモンが起動-バージョン2.8.5、設定は/ etc / postfixの"

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


私が実際に達成したいこと:

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

回答:


13

あなたのphp.iniでは、これ:

sendmail_path = /etc/postfix

sendmail(または互換)バイナリへのパスである必要があります。
正しくないpostfixの設定ディレクトリに設定しました。

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


どうもありがとうございました!SendmailとPostfixが一緒に機能する理由と方法がよくわかりませんが、今は機能します!私は後置に設定する読ん場所を覚えて、これは私の場合は正しい設定であることができません:sendmail_path = "/usr/sbin/sendmail -t -i"
Quasdunk

もう少し情報を追加しました-基本的にそれらは一緒に機能していないため、sendmailはありませんが、postfixはそのようなふりをしています。 postfixバイナリ。
セシウム2011

1
私は覚えています!sendmailには、何年にもわたってバグが次々と発生していました。ある時点で、ルートのみのコマンドを〜/ .forwardに含め、自分にメールを送信し、Unix / Linuxシステムで何でも実行できます。大規模なExodusがあり、新しいメールサーバーにはsendmailのように動作するように設計されたsendmailのようなプログラムが含まれていたため、sendmailを中心に構築された他のすべてのプログラムは、追加の作業なしで動作します。

追加情報をありがとう!今ではもっと理にかなっています;)できれば、もう1つ+1を差し上げますが、これが同じように役立つ他の誰かが私のためにそれをしてくれることを願っています:-D
Quasdunk

1

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

これは、readmeファイルで指定されているものと同じです。

WAMP(ウィンドウ):

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

<?php
     echo phpinfo();
?>

入力はlocalhost / setting.phpブラウザで。「ロードされた設定ファイル」が検索されます。これがphp.iniへのパスになります。

php.iniファイル削除;(セミコロン) `拡張= php_openssl.dllに与えられます。これでサーバー設定は終了です...

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

LAMP(Linux):

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

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.