GNU/Linux >> Linux の 問題 >  >> Ubuntu

PHPにメールを送信させる方法は?

タスクセルを使用してUbuntu11.04、LAMPをインストールしました。

PHPのmail() 動作しません。

私はそれか何かを有効にする必要があると思いますか?どうすればいいですか?

ベストアンサー

phpのメールマニュアルから:

要件

メール機能を
利用できるようにするには、PHPに
インストールされて機能するメールシステムが必要です。使用するプログラムは、
php.iniファイルの
構成設定によって定義されます。

これは、ある種のメールサーバーをインストールし、それを使用するようにphpを構成する必要があることを意味します。通常、このメールサーバーはUbuntuではpostfixです。ただし、コーディングしているphp側が最終的にホスティングサービス側に保存される場合(xmissionなど)、メールサーバーはすでにそこにインストールされている可能性があります。その場合は、ローカルではなくオンラインでサイトをテストしてください。

自分のシステムでテストする必要がある場合、または自分のホームサーバーでホストする場合は、次の手順に進みます。

Postfixのインストール

インストール:接尾辞 / sudo apt-get install postfix プロセス中に、postfixをインストールするモードを尋ねられます。 4つの可能なモードがあります:

  • インターネット :あなた自身のメールサーバー。
  • 衛星 :メールの送受信には、外部のメールプロバイダー(Googleなど)が使用されます。サーバーはメールを受信しません。
  • スマートホスト :2つの混合物。メールはローカルに保存されますが、外部のメールプロバイダーを介して送信されます。
  • ローカルのみ :気になりません。それはシステムインターンのメールサーバーです。システム上のユーザーからユーザーにのみメールを送信できます。

残りのインストールオプションは、この一般的な構成の選択によって異なります。

ほとんどの場合、衛星インストールを選択します。つまり、メールは外部プロバイダーを使用して送信されます。次に、smtp-server(送信メールサーバー)として、プロバイダーのsmtpを指定する必要があります。残りのオプションは自明です。

インストール後の構成

ほとんどのSMTPサーバーは、メールを送信するためにパスワード認証を必要とします。したがって、postfixはそのパスワードを知る必要があります。また、考慮すべき暗号化のようなものもあります(これはグーグルする必要があります)。これは、パスワード認証(sasl)を使用してpostfixを構成する方法です:

  • libsasl2-modulesをインストールします およびsasl2-bin ソフトウェアセンターのアイコンをクリックするか、ターミナルから次のコマンドを使用します。

    sudo apt-get install libsasl2-2 libsasl2-modules sasl2-bin
    
  • これらの行を/etc/postfix/main.cfに追加して、sasl-authを有効にします

     # add to /etc/postfix/main.cf
     smtp_sasl_auth_enable = yes
     smtp_sasl_security_options = noplaintext noanonymous
     smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
    
  • ファイルを作成する/etc/postfix/sasl_password 次のような行で:

     smtp.gmail.com [email protected]:USERPASSWORD
    

    実際のパスワード、ユーザー名、SMTPアドレスに置き換えてください。

  • 接尾辞の更新:

     sudo chmod 600 /etc/postfix/sasl_password # for safety of your smtp password
     sudo postmap hash:/etc/postfix/sasl_password 
     sudo postmap /etc/postfix/sender_canonical
     sudo /etc/init.d/postfix restart   
    

    chown postfix:postfix /etc/postfixで「permissiondenied」バグを回避する必要があるかもしれません 事前に。

関連:Ubuntu 16.04にgnomeスケジュールをインストールできませんか?

ほとんどの場合、これでうまくいくはずです。ただし、一部のSMTPプロバイダーでは、送信者または暗号化として特定のアドレスが必要です。

関連:PEAR::メールインターフェースもあなたの興味を引くかもしれません。

Gmail(およびおそらく他のサービス)は、標準で安全でないと見なされる可能性があるため、この方法でメールを送信しようとしていることを好まない可能性があります。つまり、画面に何も表示されないか、プロセス全体のどこかでブロックされます。あなたの認証。また、POP3を有効にする必要があります。

これに対抗するには、ここを参照してください。 (安全を確保したい場合は、ダミーのGmailアカウントを作成してください)


Ubuntu
  1. Ubuntu – Pam_execに現在のユーザーとしてスクリプトを実行させる方法は?

  2. コマンドラインを使用してXmppメッセージを送信する方法は?

  3. Postfix の mailq のメッセージをカウントするにはどうすればよいですか?

  1. Postfixをインストールして設定する方法

  2. Ubuntu20.04にPostfixをインストールして設定する方法

  3. メールアイコンインジケータアプレットを削除する方法は?

  1. RHEL 8 /CentOS8にpostfixメールサーバーをインストールする方法

  2. Ubuntu 16.04でPostfixメールサーバーをセットアップする方法(Dovecot-MySQL)

  3. コマンド ラインから電子メールを送信するにはどうすればよいですか?