Ankündigung

Einklappen
Keine Ankündigung bisher.

Bestätigung aus erhaltener Mail

Einklappen

Neue Werbung 2019

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

  • Bestätigung aus erhaltener Mail

    Hallo,

    ich habe folgend Frage. Ich versende Einladungen per E-Mail. Jetzt würde ich gerne zwei Buttons "Zusagen" "Absagen" darunter setzten, sodaß der Empfänger nichts weiter tun muß als den Button zu drücken und ich als Antwort bekomme : "Name sagt zu" oder "Name sagt ab". Als Name soll die Mailadresse des Antwortenden gesetzt werden. Geht so etwas überhaupt.

    Danke für eure Tipps

  • #2
    Ja, kannst ja deine E-Mails in einem Html Format verschicken (oder einfache Links mit Parameterübergabe einbauen). Nachteil: nicht alle User "erlauben" Html Mail und die Darstellung des Html Codes!

    Hier ein link zum allg. Mailversand:

    HTML-E-Mail mit PHP erstellen - PHP-Kurs.com (simples Beispiel)
    PHP-Artikel: E-Mails versenden mit PHP - HTMLWorld (gut und einfach erklärt)

    Wolf29
    while (!asleep()) sheep++;

    Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

    Kommentar


    • #3
      Klaro geht das,
      du musts nur dem Link verschiedene Parameter mitgeben.
      zb. einmal ne id über den du den User Idetifizieren kannst, und
      dann noch eine id über die du weisst, ob der user zu oder absagt.
      du kannst aber auch die zweite id weglasssen und stattdessen auf
      absagen.php oder zusagen.php weiterleiten..

      Gruß,
      Glacier
      www.echt-trendy.de - Die Trend Community.

      Kommentar


      • #4
        Bau deinen Button/deinen Link in der Form: <a href="example.com/check.php?mail=user@domain.tld&ver=1">Zusagen</a>
        Das heißt natürlich, dass du für jeden Empfänger die Mail neu generieren musst.

        Kommentar


        • #5
          @profimong: Anmerkung: beachte, dass Du die übergebenen Parameter auch entsprechend prüfst (wenn du auswertest), da es gerne ein Tor für bösartigen Code ist!

          Wolf29
          while (!asleep()) sheep++;

          Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

          Kommentar


          • #6
            Zitat von glacier Beitrag anzeigen
            Klaro geht das,
            du musts nur dem Link verschiedene Parameter mitgeben.
            zb. einmal ne id über den du den User Idetifizieren kannst, und
            dann noch eine id über die du weisst, ob der user zu oder absagt.
            du kannst aber auch die zweite id weglasssen und stattdessen auf
            absagen.php oder zusagen.php weiterleiten..

            Gruß,
            Glacier
            Wie würde das mit der Useridentifizierung aussehen

            Kommentar


            • #7
              Du übergibst z.B. eine verschlüsselte ID als Parameter, die Du prüfst über deine DB (User-)Tabelle!

              Wolf29
              while (!asleep()) sheep++;

              Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

              Kommentar


              • #8
                Das verstehe ich nicht. Jeder User erhält doch die gleiche Mail. Wie kann ich denn da herausbekommen welche Person in Ihrem Mailprogramm (Outlook, oder Webmail, Iphone?) auf den Link drückt. Bekomme ich die Mailadresse ausgelesen von woaus der Link gedrückt wird.

                Kommentar


                • #9
                  Es geht eben darum, dass du nicht immer die selbe Mail versenden darfst.
                  Der Mailtext (bzw. der Link/Button) muss für jeden Empfänger anders aussehen.

                  Kommentar


                  • #10
                    @aeris: genau

                    @profimong: Du liest doch z.B. deine E-Mail Adressen in einer Schleife aus der DB aus. Parallel dazu ermittelst Du die id zum jeweiligen User (was ihn eindeutig identifiziert). Diese verschlüsselst Du und schickst Sie in deiner Standardmail als Parameter mit. Der Mailversand erfolgt dann in einer Schleife entsprechend der E-Mail Adressen. Optimum wäre es natürlich, wenn Du bereits eine fertige Mailer Klasse verwendest!

                    Wolf29
                    while (!asleep()) sheep++;

                    Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

                    Kommentar


                    • #11
                      Zitat von wolf29 Beitrag anzeigen

                      @profimong: Du liest doch z.B. deine E-Mail Adressen in einer Schleife aus der DB aus. Parallel dazu ermittelst Du die id zum jeweiligen User (was ihn eindeutig identifiziert). Diese verschlüsselst Du und schickst Sie in deiner Standardmail als Parameter mit. Der Mailversand erfolgt dann in einer Schleife entsprechend der E-Mail Adressen. Optimum wäre es natürlich, wenn Du bereits eine fertige Mailer Klasse verwendest!

                      Wolf29
                      Genau so

                      /Glacier
                      www.echt-trendy.de - Die Trend Community.

                      Kommentar


                      • #12
                        Ja ich lese die Adressen aus der Datenbank und führe dann die Schleife zum versenden der Mails aus.

                        Das ist die Datei mail.php welche Daten aus der Datenbank holt und in eine HTML Tabelle schreibt welche als E-Mail versand wird.



                        PHP-Code:

                        <?php
                        //MAIL ZUSAMMENBAUEN

                        $server    "localhost";
                        $user    "user";
                        $pass    "pass";
                        $database "db";
                        $table    "News";
                        $verbindung mysql_connect($server$user$pass) or die ("verbindung zu sql geht nicht");

                        mysql_select_db($database$verbindung);

                        $abfrage "SELECT date_format(Datum, '%d.%m.%Y') Datum, time_format(Anstoss, '%H:%i Uhr')Anstoss, Begegnung, Ort FROM $table WHERE Datum <= CURDATE() +6 AND Datum >= CURDATE() ORDER BY Datum ASC";
                        // Anfrage ausführen
                        $ergebnis=mysql_query($abfrage) or die("Fehler im SQL-Kommando $sql");

                        if (
                        mysql_num_rows($ergebnis)>0) { 

                        while(
                        $row mysql_fetch_array($ergebnis)) {
                        $date $row['Datum'];
                        $time $row['Anstoss'];
                        $begegnung $row['Begegnung'];
                        $ort $row['Ort'];

                        $text '<html>
                        <head>
                        </head>
                        <body>
                        <table align="center">
                          <tr>
                            <td align="center"><img alt="bild" src="cid:logo"></td>
                          </tr>
                          <tr>
                            <td align="center" style="color: #ff0000; font-weight:bold; font-size:40px">Nächstes Spiel!</td>
                          </tr>
                          <tr>
                            <td align="center" style="color: #000000; font-weight:bold; font-size:20px"><img alt="-" src="cid:ball"></td>
                          </tr>
                          <tr>
                            <td align="center" style="color: #000000; font-weight:bold; font-size:20px">'
                        $row['Datum'].' - '.$row['Anstoss'].'</td>
                          </tr>
                          <tr>
                            <td align="center" style="color: #000000; font-weight:bold; font-size:20px"><img alt="-" src="cid:ball"></td>
                          </tr>
                          <tr>
                            <td align="center" style="color: #000000; font-weight:bold; font-size:20px">'
                        .$row['Begegnung'].'</td>
                          </tr>
                          <tr>
                            <td align="center" style="color: #000000; font-weight:bold; font-size:20px"><img alt="-" src="cid:ball"></td>
                          </tr>
                          <tr>
                            <td align="center" style="color: #000000; font-weight:bold; font-size:20px">'
                        .$row['Ort'].'</td>
                          </tr>
                           <tr>
                            <td align="center" style="color: #000000; font-weight:bold; font-size:20px"><img alt="-" src="cid:ball"></td>
                         </table>


                        </body>
                        </html>'
                        ;

                        }

                        }
                        else { 
                        $text "Diese Woche findet kein Spiel statt";
                        }
                        Per PHPMailer wird dies dann gesendet

                        PHP-Code:
                        //Klasse einbinden
                          
                        require('class.phpmailer.php');

                          
                        $query "select Adresse from Mitglieder";  
                          
                        $result mysql_query($query);
                          
                        //Instanz von PHPMailer bilden
                          
                        $mail = new PHPMailer();
                          
                        $mail->SetLanguage("de");
                          
                        $mail->CharSet  =  "utf-8";
                          
                        //Absenderadresse der Email setzen
                          
                        $mail->From "test@test.de";
                          
                        //Versand im HTML-Format festlegen
                          
                        $mail->IsHTML(true);
                          
                        //Logo einbinden
                          
                        $mail->AddEmbeddedImage("logo.jpg""logo""logo.jpg");
                          
                        $mail->Body 'Embedded Image: <img alt="Bild" src="cid:logo"> Logo'
                          
                        //Ball einbinden
                          
                        $mail->AddEmbeddedImage("ball.jpg""ball""ball.jpg");
                          
                        $mail->Body 'Embedded Image: <img alt="Bild" src="cid:ball"> Ball'
                          
                        //Betreff der Email setzen
                          
                        $mail->Subject "SPIELERINNERUNG";
                          
                        //Name des Abenders setzen
                          
                        $mail->FromName "Test";
                          
                        //Body enthält die HTML-Nachricht
                          
                        $mail->Body    $text;
                          
                        //Altbody enthält die alternative Textform
                          
                        $mail->AltBody strip_tags($text);
                          
                        // START Schleife  Adressen
                          
                        while($row mysql_fetch_array($result)) {  
                            
                        $mail->AddAddress($row['Adresse']);  
                            if(!
                        $mail->Send()) {  
                              echo 
                        "<h3>Die E-Mail konnte nicht an [i]"$row['Adresse'] ."[/i] verschickt werden. ";  
                              echo 
                        "  Mailer Fehler: "$mail->ErrorInfo;  
                              echo 
                        "</h3>";  
                            } 
                            
                        $mail->ClearAddresses(); // Editiert
                          

                          
                        // ENDE Schleife  

                          
                        echo "<h3>Die E-Mails wurden verschickt.</h3>"
                        wenn ich bei der Adressabfrage

                        PHP-Code:
                        $query "select Adresse, ID from Mitglieder";  
                          
                        $result mysql_query($query); 
                        schreibe bekomme ich auch die ID der dazugehörigen Mailadresse.
                        Wie bekomme ich diese jetzt aber in die oben genannte Tabelle in einen Link (ist noch nicht da) um Sie dann wieder in die zb. auswertung.php zu übergeben und dadurch auf den Namen der Person zu kommen.

                        Ist meine Vorgehensweise von Grund auf Richtig?

                        Kommentar


                        • #13
                          PHP-Code:
                          while($row mysql_fetch_array($ergebnis)) {
                          $date $row['Datum'];
                          $time $row['Anstoss'];
                          $begegnung $row['Begegnung'];
                          $ort $row['Ort'];

                          $text = ... } 
                          hier gehst du für jeden Eintrag in deiner Datenbank, auf den deine Bedingung passt, das Resultset durch und schreibst es in $text um es beim nächsten Durchgang zu überschreiben, könnte dich unter Umständen bei vielen Einträgen innerhalb der DB viel unnötige Zeit kosten.

                          Zum Eigentlichen Problem:
                          Vorschlag:
                          PHP-Code:
                          $text '<html>
                          <head>
                          </head>
                          <body>
                          <table align="center">
                            <tr>
                              <td align="center"><img alt="bild" src="cid:logo"></td>
                            </tr>
                            <tr>
                              <td align="center" style="color: #ff0000; font-weight:bold; font-size:40px">Nächstes Spiel!</td>
                            </tr>
                            <tr>
                              <td align="center" style="color: #000000; font-weight:bold; font-size:20px"><img alt="-" src="cid:ball"></td>
                            </tr>
                            <tr>
                              <td align="center" style="color: #000000; font-weight:bold; font-size:20px">'
                          $date .' - '$time .'</td>
                            </tr>
                            <tr>
                              <td align="center" style="color: #000000; font-weight:bold; font-size:20px"><img alt="-" src="cid:ball"></td>
                            </tr>
                            <tr>
                              <td align="center" style="color: #000000; font-weight:bold; font-size:20px">'
                          .htmlentities($begegnung).'</td>
                            </tr>
                            <tr>
                              <td align="center" style="color: #000000; font-weight:bold; font-size:20px"><img alt="-" src="cid:ball"></td>
                            </tr>
                            <tr>
                              <td align="center" style="color: #000000; font-weight:bold; font-size:20px">'
                          .htmlentities($ort).'</td>
                            </tr>
                             <tr>
                              <td align="center" style="color: #000000; font-weight:bold; font-size:20px"><img alt="-" src="cid:ball"></td>
                           </table>'
                          ;

                          Weiter unten dann
                          PHP-Code:
                          while($row mysql_fetch_array($result)) {
                              
                          $mail->Body .= '<a href="example.com/check.php?mail=' url_encode($row['Adresse']) . '&ID=' $row['ID'] .' &ver=1">Zusagen</a> ' "\n" 
                                             
                          '<a href="example.com/check.php?mail=' url_encode($row['Adresse']) . '&ID=' $row['ID'] . '&ver=0">Absagen</a></body></html>';
                              
                          $mail->AddAddress($row['Adresse']);  
                              if(!
                          $mail->Send()) {  
                                echo 
                          "<h3>Die E-Mail konnte nicht an [i]"$row['Adresse'] ."[/i] verschickt werden. ";  
                                echo 
                          "  Mailer Fehler: "$mail->ErrorInfo;  
                                echo 
                          "</h3>";  
                              } 
                              
                          $mail->ClearAddresses(); // Editiert
                            

                          PS: Diese beiden Zeilen hast du schon in deinem $text enthalten und bewirken sowieso nichts, da du Sie mit deinem Text wieder Überschreibst, die kannst du weg lassen.
                          PHP-Code:
                          $mail->Body 'Embedded Image: <img alt="Bild" src="cid:logo"> Logo'// <--
                            //Ball einbinden
                            
                          $mail->AddEmbeddedImage("ball.jpg""ball""ball.jpg");
                            
                          $mail->Body 'Embedded Image: <img alt="Bild" src="cid:ball"> Ball';  // <-- 

                          Kommentar


                          • #14
                            Bekomme leider den Fehler

                            Fatal error: Call to undefined function url_encode() in /Mailer/new.php on line 106

                            es muß heißen urlencode statt url_encode

                            jetzt geht es

                            in der Mail kommt an

                            Zusagen AbsagenZusagen Absagen

                            das liegt sicher an der schleife habe zwei adressen in der Datenbank daher kommt das doppelt ???


                            ist auch kein Link sondern nur ein Text

                            Kommentar


                            • #15
                              @Theo: denk dran, die ID zur Sicherheit noch zu verschlüsseln!

                              wolf29
                              while (!asleep()) sheep++;

                              Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

                              Kommentar

                              Lädt...
                              X