GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Wie lässt man Php E-Mails senden?

Ich habe Ubuntu 11.04, LAMP mit Tasksel installiert.

Ich finde, dass PHP mail() funktioniert nicht.

Ich nehme an, ich muss es aktivieren oder so? Wie mache ich das?

Beste Antwort

Aus dem Mail-Handbuch von PHP:

Anforderungen

Damit die E-Mail-Funktionen
verfügbar sind, benötigt PHP ein installiertes
und funktionierendes E-Mail-System. Das zu verwendende Programm
wird durch die
Konfigurationseinstellungen in der Datei php.ini
definiert.

Das bedeutet, dass Sie eine Art Mailserver installieren und PHP konfigurieren müssen, um ihn zu verwenden. Normalerweise ist dieser Mailserver in Ubuntu postfix. Wenn die PHP-Seite, die Sie programmieren, jedoch irgendwann auf der Seite eines Hosting-Dienstes (z. B. xmission) gespeichert wird, ist dort höchstwahrscheinlich bereits ein Mailserver installiert. In diesem Fall testen Sie Ihre Website einfach online statt lokal.

Wenn Sie es auf Ihrem eigenen System testen müssen oder es auf Ihrem eigenen Home-Server hosten möchten, fahren Sie fort mit:

Postfix-Installation

Installation:postfix / sudo apt-get install postfix Während des Vorgangs werden Sie gefragt, in welchem ​​Modus Postfix installiert werden soll. Es gibt vier mögliche Modi:

  • Internet :Ihr eigener Mailserver.
  • Satellit :Zum Senden und Empfangen von E-Mails wird ein externer E-Mail-Anbieter (z. B. Google) verwendet. Der Server erhält keine Mail.
  • Smarthost :Mischung zwischen den beiden. E-Mails werden lokal gespeichert, aber über einen externen E-Mail-Anbieter gesendet.
  • Nur lokal :Betrifft Sie nicht. Das ist ein systeminterner Mailserver. Sie können auf dem System nur E-Mails von Benutzer zu Benutzer senden.

Die restlichen Installationsoptionen hängen von Ihrer Wahl dieser allgemeinen Konfiguration ab.

Höchstwahrscheinlich werden Sie sich für eine Satelliteninstallation entscheiden. Das bedeutet, dass die E-Mail über einen externen Anbieter gesendet wird. Als SMTP-Server (Postausgangsserver) müssen Sie dann den SMTP-Server Ihres Providers angeben. Der Rest der Optionen ist selbsterklärend.

Konfiguration nach der Installation

Die meisten SMTP-Server erfordern eine Passwortauthentifizierung, um E-Mails zu senden. Also muss Postfix dieses Passwort kennen. Auch gibt es Dinge wie Verschlüsselung zu beachten (die Sie googeln müssen). So konfigurieren Sie Postfix mit Passwortauthentifizierung (sasl):

  • Installieren Sie libsasl2-modules und sasl2-bin indem Sie auf die Software-Center-Symbole klicken oder über das Terminal:

    sudo apt-get install libsasl2-2 libsasl2-modules sasl2-bin
    
  • Aktivieren Sie sasl-auth, indem Sie diese Zeilen zu /etc/postfix/main.cf hinzufügen

     # 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
    
  • Erstellen Sie eine Datei /etc/postfix/sasl_password mit einer Zeile wie:

     smtp.gmail.com [email protected]:USERPASSWORD
    

    Ersetzen Sie das tatsächliche Passwort, den Benutzernamen und die SMTP-Adresse.

  • Postfix aktualisieren:

     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   
    

    Möglicherweise müssen Sie den Fehler „Zugriff verweigert“ durch chown postfix:postfix /etc/postfix umgehen vorher.

Verwandte:Ich kann den Gnome-Zeitplan nicht auf Ubuntu 16.04 installieren?

Damit sollte es in den meisten Fällen gehen. Einige SMTP-Anbieter verlangen jedoch eine bestimmte Adresse als Absender oder Verschlüsselung.

Verwandte:Das PEAR::Mail-Interface könnte Sie auch interessieren.

Google Mail (und vielleicht andere Dienste) mag es möglicherweise nicht, dass Sie versuchen, E-Mails auf diese Weise zu senden, da dies nach ihren Standards als unsicher angesehen werden könnte und Ihren Versuch blockieren würde, d. h. auf dem Bildschirm wird nichts passieren oder ein Teil des gesamten Prozesses würde blockiert Ihre Authentifizierung. Außerdem muss Ihr POP3 aktiviert sein.

Um dem entgegenzuwirken, siehe hier. (Wenn Sie auf Nummer sicher gehen wollen, erstellen Sie ein Dummy-Gmail-Konto)


Ubuntu
  1. So installieren und konfigurieren Sie Postfix

  2. Wie entferne ich das Mail Icon Indicator Applet?

  3. Wie sende ich eine Xmpp-Nachricht über die Befehlszeile?

  4. Wie sende ich E-Mails von der Befehlszeile aus?

  5. Wie zähle ich die Nachrichten von Mailq von Postfix?

So ändern Sie den Hostnamen in Ubuntu Linux

So installieren Sie das neueste PHPMyAdmin auf Ubuntu 18.04

Wie ändere ich die PHP-Version in Plesk?

So ändern Sie die PHP-Version in cPanel

So ändern Sie die PHP-Version

So überprüfen Sie die PHP-Version unter Linux