Ankündigung

Einklappen
Keine Ankündigung bisher.

mail() $headers Absender-Problem

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mail() $headers Absender-Problem

    Guten Morgen!

    Ich habe ein Script geschrieben, dass via mail() Nachrichten verschickt. Das Script liegt im Verzeichnis www.example1.org/test/. Gebe ich in den Headerdaten als Absender system@example1.org an, erreicht den Mailadressaten keine E-Mail. Verwende ich als Absender eine meiner anderen Domains system@example2.org oder system@example3.org funktioniert es genau wie es soll.

    Kann mir wer weiterhelfen?
    .

  • #2
    Dh, da geht es um unterschiedliche Absenderdomains über die du versenden willst?

    - Nutzt du schon eine Mailerklasse? http://php-de.github.io/jumpto/mail-class/
    - Im "SMTP-Modus"?
    The string "()()" is not palindrom but the String "())(" is.

    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
    PHP.de Wissenssammlung | Kein Support per PN

    Kommentar


    • #3
      Ich will nur über die E-Mail-Adresse example1.org versenden. Aber das funktioniert nicht. Die Daten befinden sich alle im Verzeichnis der Domain example1.org. Versenden funktioniert nur mit allen anderen Domains, nur nicht mit der.

      Funktioniert nicht:
      example1.org/test/signup.php
      PHP-Code:
       $emailheader                  'MIME-Version: 1.0'."\r\n";
       
      $emailheader                 .= 'Content-type: text/html; charset=iso-8859-1'."\r\n";
       
      $emailheader                 .= 'From: Testname <system@example1.org>';

       
      $email                        = array();
       
      $email['verification']['sub'] = 'Bitte aktivieren Sie Ihren Account!';
       
      $email['verification']['msg'] = 'blablabla'
      Funktioniert:
      example1.org/test/signup.php
      PHP-Code:
       $emailheader                  'MIME-Version: 1.0'."\r\n";
       
      $emailheader                 .= 'Content-type: text/html; charset=iso-8859-1'."\r\n";
       
      $emailheader                 .= 'From: Testname <system@example2.org>';

       
      $email                        = array();
       
      $email['verification']['sub'] = 'Bitte aktivieren Sie Ihren Account!';
       
      $email['verification']['msg'] = 'blablabla'
      Werde mal die Mailer-Klassen durchschauen.
      .

      Kommentar


      • #4
        Insofern du die Mails nicht über einen SMTP-Server sendest kann es gut sein, dass der Zielserver die Mails ablehnt.
        [URL="https://github.com/chrisandchris"]GitHub.com - ChrisAndChris[/URL] - [URL="https://github.com/chrisandchris/symfony-rowmapper"]RowMapper und QueryBuilder für MySQL-Datenbanken[/URL]

        Kommentar


        • #5
          Aha interessant.

          Habe mir jetzt phpmailer installiert. Allerdings kann ich keine Mails versenden

          PHP-Code:
          require('includes/class.phpmailer.php');
          require(
          'includes/class.smtp.php'); // stellt die Methoden für SMTP-Connect bereit
          $mail = new PHPMailer();

          // Anmelden am SMTP-Server
          $mail->IsSMTP();
          $mail->Host     'smtp.example1.org'
          $mail->SMTPAuth true
          $mail->Username 'user';
          $mail->Password 'pass';

          $mail->Subject 'test';
          $mail->IsHTML(true);
          $mail->Body     '<b>test</b>'// Das was du vermailen möchtest HTML-Format
          $mail->AltBody   'test'// Das was du vermailen möchtest txt-Format
          $mail->From     'mail@example.org';
          $mail->FromName 'mail@example.org';
          $mail->AddReplyTo('mail@example.org');
          $mail->Sender     'mail@example.org';
          $mail->CharSet  =  "utf-8"// btw. den charset, mit dem du arbeitest
          $mail->AddAddress('ich@example.org');
          $mail->Send(); // weg damit 
          Fehlermeldung bekomme ich trotz error_reporting(E_ALL) keine. Was mache ich denn schon wieder falsch?
          .

          Kommentar


          • #6
            Versuch mal das:

            PHP-Code:
            // enables SMTP debug information (for testing)
            $mail->SMTPDebug  2
            http://phpmailer.worxware.com/?pg=examplebsmtp

            Nachtrag: Du kannst auch mit true instantiieren, dann wirft der eine execption, nur zur info.

            PHP-Code:
            // the true param means it will throw exceptions on errors,
            // which we need to catch
            $mail = new PHPMailer(true); 
            http://phpmailer.worxware.com/index.php?pg=exampleamail

            LG
            The string "()()" is not palindrom but the String "())(" is.

            Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
            PHP.de Wissenssammlung | Kein Support per PN

            Kommentar


            • #7
              Danke für deine Antwort und Mühe! Jetzt funktionierts ))
              .

              Kommentar


              • #8
                Gestern setzte ich einfach SMTP-Auth auf false, worauf ich beim Testen auch Mails verschicken konnte. Jetzt bin ich draufgekommen, dass die Mails nur bei den Domains ankommen, die auch mit dem Server zusammenhängen - nach außen tut sich also nichts (zB auf web.de).

                Also hab ich ausprobiert, die SMTP-Verbindung auf true zu setzen und hab dort die Daten meines E-Mail-Postfaches eingegeben (web123456 + Passwort). Jetzt bekomme ich einen Authentication Error.

                Was kann das denn sein? Habe schon alle Varianten ausprobiert, die mir untergekommen sind. Danke für eure Hilfe!


                PHP-Code:
                2014-10-04 05:26:26    SERVER -> CLIENT220 mail.domain.eu ESMTP welcomes you.
                2014-10-04 05:26:26    CLIENT -> SERVEREHLO domain.net
                2014
                -10-04 05:26:26    SERVER -> CLIENT250-mail.domain.eu Hello ip07********19.rev.********.** [77.***.***.19]
                                                         
                250-SIZE 104857600
                                                         250
                -8BITMIME
                                                         250
                -AUTH CRAM-MD5
                                                         250
                -STARTTLS
                                                         250 HELP
                2014
                -10-04 05:26:26    CLIENT -> SERVERAUTH LOGIN
                2014
                -10-04 05:26:26    SERVER -> CLIENT504 LOGIN authentication mechanism not supported
                2014
                -10-04 05:26:26    SMTP ERRORAUTH command failed504 LOGIN authentication mechanism not supported
                2014
                -10-04 05:26:26    CLIENT -> SERVERQUIT
                2014
                -10-04 05:26:26    SERVER -> CLIENT221 mail.domain.eu closing connection
                2014
                -10-04 05:26:26    SMTP connect() failed
                .

                Kommentar


                • #9
                  Hab gerade den Tipp gelesen, man soll $mail->IsSMTP(); auf //$mail->IsSMTP(); ändern bzw löschen. Jetzt bekomme ich tatsächlich Mails, aber ob das die richtige Vorgehensweise ist?!
                  .

                  Kommentar


                  • #10
                    OK, habe das Problem gelöst.

                    Alle die einen SMTP-Server mit SSL haben sollten bei Problemen mal diese Einstellungen probieren:

                    PHP-Code:
                       $mail->IsSMTP();
                       
                    $mail->Host "smtp.example.org";
                       
                    $mail->SMTPAuth true;
                       
                    $mail->SMTPSecure "ssl";
                       
                    $mail->Username   'Username'
                       
                    $mail->Password   'Password';
                       
                    $mail->Port "465"
                    .

                    Kommentar


                    • #11
                      Zitat von kremser Beitrag anzeigen
                      Gestern setzte ich einfach SMTP-Auth auf false, worauf ich beim Testen auch Mails verschicken konnte. Jetzt bin ich draufgekommen, dass die Mails nur bei den Domains ankommen, die auch mit dem Server zusammenhängen - nach außen tut sich also nichts (zB auf web.de).


                      [...]

                      Du kannst also mit einer E-Mail-Adresse von deinem Server an Adressen auf deinem Server (ich nehme an, das sind mehrere, da Shared Hosting) ohne Authentifizierung E-Mails senden?

                      Interessant, so kann man sich auch öffnen für Spam-Mails...
                      [URL="https://github.com/chrisandchris"]GitHub.com - ChrisAndChris[/URL] - [URL="https://github.com/chrisandchris/symfony-rowmapper"]RowMapper und QueryBuilder für MySQL-Datenbanken[/URL]

                      Kommentar


                      • #12
                        Es ist nicht mein Server - Shared Hosting - Webspace! Ehrlichgesagt, keine Ahnung, was da los ist. Nach außen geht's jedenfalls nicht ohne SMTP SSL Auth.
                        .

                        Kommentar

                        Lädt...
                        X