2016-08-24 16 views
1

私のバーチャルボックスのcentos linux開発環境にMailHogをインストールすることで、開発を簡単にしたいと思っていました。 PHP mail()関数は問題を報告しません(つまり、TRUEを返します)が、送信メールはMailHogに表示されませんでした。どのように正しく設定する必要がありますか?MailHogをLinuxのバーチャルボックスにインストールしてメールを取得する

答えて

3

次の手順に従います。

  • https://github.com/mailhog/MailHog/releasesから適切なMailHogバージョンをダウンロードしてください。この例ではMailHog_linux_amd64を使用していますが、別のバージョンが必要な場合があります。私はあなたのファイルを格納するためにあなたのホームディレクトリを使用すると仮定します。あなたがこれをやっていない可能性が高い場合は、それに応じて必要な修正を加えてください。
  • あなたのVMは、IPフィルタリングを使用している場合、あなたはのiptable設定に行を追加し、それを再起動すると、ポート8025を介して通信を許可する必要がありますが:

    vim /etc/sysconfig/iptables 
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 8025 -j ACCEPT 
    service iptables restart 
    
  • 次のコマンドで起動MailHog:

    ./MailHog_linux_amd64 -hostname=mylocal.vbox:8025 
    

    ここで、mylocal.vboxは、ホストがVMをどのように見ているかのドメイン名です。これで、どのIPアドレスとポートが使用されているかを詳しく説明する行が表示されます。

  • ここからmhsendmailをダウンロードしてください:https://github.com/mailhog/mhsendmail/releases

    vim /etc/php.ini 
    sendmail_path = "/home/you/mhsendmail_linux_amd64" 
    service httpd restart 
    
  • ビューMailHogウェブ:

    chmod 777 /home/you/mhsendmail_linux_amd641 
    
  • mhsendmail代わりのsendmailを使用するようにphp.iniを変更

  • 変更それは(それに応じてファイルのパスを調整する)実行可能に(上記で使用したホスト名を使用してください):http://mylocal.vbox:8025/。 MailHogのWebメールインターフェイスが表示されます。このonelinerとVMのコマンドラインから送信

  • テストメール:

    php -r "\$from = \$to = '[email protected]'; \$x = mail(\$to, 'subject'.time(), 'Hello World', 'From: '. \$from); var_dump(\$x);" 
    

    それはtrueを表示しなければならないとMailHogのWebインターフェイスは、新しい電子メールが表示されるはずです。

  • あなたが望むように、phpのmail()関数で楽しい時間を過ごしてください。

いくつかのより多くのアイデア:この中

./MailHog_linux_amd64 -ui-bind-addr=192.168.56.104:8026 -api-bind-addr=192.168.56.104:8026 -hostname=mylocal.vbox:8026 -smtp-bind-addr=192.168.56.104:8025 
  • :デフォルトIPアドレスとポートの設定を無効にしたい場合は

    • は、次の構文を使用する必要がありますあなたはPHPの設定をエスケープする必要があります。INIこの方法:

      sendmail_path = "/home/you/mhsendmail_linux_amd64 --smtp-addr=""192.168.56.104:8025""" 
      
  • 関連する問題