php mail() zeitlich nacheinander

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

  • php mail() zeitlich nacheinander

    Hallo zusammen,

    ich lese hier schon einige Zeit mit und habe schon einige hilfreiche Tipps gefunden, allerdings stehe ich nun vor einem Problem, wo ich bisher keine "saubere" Lösung gefunden habe.

    Es geht um folgendes:
    Nachdem ein Besucher ein Formular ausgefüllt hat, soll er kurz hintereinander zwei eMails erhalten.
    Die erste hat einen Anhang von ca. 14kb, die zweite einen von 8kb.

    Es ist dabei von besonderer Bedeutung, dass diese eMails in der richtigen Reihenfolge nacheinander beim Besucher ankommen.

    Wenn ich entsprechend zweimal die mail()-Funktion aufrufe, kommt dennoch die zweite eMail mit dem kleineren Anhang als erste an.
    Ich habe bereits die erste mail()-Funktion an den Anfang des Scriptes gestellt, die zweite an das Ende des Scriptes, aber sie kommen dennoch "vertauscht" an.

    Zudem habe ich es mit der eMail-Priorität im Mail-Header versucht, jedoch ebenfalls ohne Erfolg.

    Das einzige was bisher klappt, ist das Script mit sleep() zwischen den beiden Aufrufen pausieren zu lassen, allerdings ist diese Lösung ja nicht sehr "sauber".


    Meine Frage: Gibt es eine Möglichkeit, die Mails entsprechend abzuschicken (z.B. durch Header-Veränderungen)?

    Über Antworten wäre ich sehr dankbar!

    Viele Grüße!

    Less

  • #2
    Wie wäre es damit, das du erst die 14kb mail abschickst, dann nach ein paar sekunden auf eine neue Seite gehst und dort die mit 8kb absendest?

    Kommentar


    • #3
      Hallo lichtscheu,

      ich schicke die Mails ja nicht manuell ab, sondern sie gehen script-gesteuert direkt an den Besucher heraus.
      Eine Verteilung auf mehrere Seiten ist nicht möglich, da der Besucher vor dem Aufruf der zweiten Seite ja bereits abbrechen könnte und die zweite Mail so garnicht mehr erhält.

      Viele Grüße!

      Less

      Kommentar


      • #4
        Du könnest auch eine Mail Queue basteln. Leg die zu versendenen Mails in einer Datenbank ab und versende sie so zeitversetzt. Kannst der ersten ja 5 Minuten Vorlauf geben.

        Mit nem Script den du per cronjob aufrufst kannst du die Mails dann versenden lassen.

        Um einen vielleicht vernünftigeren Vorschlag zu machen müsste man genauer wissen was du da baust bzw. Wieso sichergestellt werden muss das die erste Mail schon angekommen ist.

        Erläuter doch mal die "besondere Bedeutung".

        Kommentar


        • #5
          Hmm Cronjob und DB wäre möglich, aber geht es nicht unkomplizierter?

          Hintergrund ist, dass aus rechtl. Gründen erst eine Bestellbestätigung samt AGB verschickt wird und zeitversetzt danach erst die Rechnung selbst.

          Und wenn die Rechnung schon vor der AGB ankommt, ist dies natürlich nicht Sinn der Sache.

          Viele Grüße!

          Kommentar


          • #6
            OffTopic:
            hehehe ... da haste aber eilig mit der Rechnung

            Kommentar


            • #7
              Original geschrieben von asp2php
              OffTopic:
              hehehe ... da haste aber eilig mit der Rechnung
              die wird halt direkt als pdf erzeugt und ist damit sofort versandfertig

              Kommentar


              • #8
                je nach einsatz würde ich die rechnungen stündlich versenden. dann biste auf der sicheren seite.

                je nach server einstellungen müsste auch folgendes funktionieren.

                mail(agb);
                echo 'danke für die bestellung';
                echo 'ausreichend zeichen mitsenden';
                flush();
                sleep(x);
                mail(rechnung);

                aber den cron fänd ich auch sauberer.

                Kommentar


                • #9
                  die wird halt direkt als pdf erzeugt und ist damit sofort versandfertig
                  hmm, einfach in die agb-mail nen link zum download anbieten?

                  Kommentar


                  • #10
                    Original geschrieben von TobiaZ
                    hmm, einfach in die agb-mail nen link zum download anbieten?
                    Ne, das ist rechtl. nicht Ok. Ein anderes Verfahren, als das beschriebene würde dazu führen, dass das Widerrufrecht zwangsläufig von 2 Wochen auf 4 Wochen erhöht wird.

                    flush() schaue ich mir direkt mal an.

                    Kommentar


                    • #11
                      dann lass nen cron laufen. bei ner stunde differenz kannst du sogar sicher sein.

                      selbst wenn du 5 sekunden pause machst, könnte es theoretisch sein, dass die zweite mail zu erst kommt.

                      BTW: Die widerrufsbelehrung kannst du auch vor dem bestellvorgang schon lesen lassen, oder ist das dann auch nicht gültig?

                      Kommentar


                      • #12
                        Original geschrieben von less
                        Hmm Cronjob und DB wäre möglich, aber geht es nicht unkomplizierter?

                        Hintergrund ist, dass aus rechtl. Gründen erst eine Bestellbestätigung samt AGB verschickt wird und zeitversetzt danach erst die Rechnung selbst.

                        Und wenn die Rechnung schon vor der AGB ankommt, ist dies natürlich nicht Sinn der Sache.

                        Viele Grüße!

                        DB ist das sicherste.
                        Wenn du das mit sleep machst ist es unsicher. Geht aber nur im zweifelsfall keine Rechnng raus wenn mal jemand den Server abschaltet oder restartet und da grad was im Schlaf liegt.

                        Kommentar


                        • #13
                          @TobiaZ,

                          das mit der Widerrufsbelehrung beim Bestellvorgang:

                          Meinst es wäre in Ordnung, dort per Checkbox bestätigen zu lassen: "Ich akzeptiere die AGB und habe die Widerrufsbelehrung zur Kenntnis genommen."

                          Das wäre natürlich das allereinfachste, da ein Cronjob + extra Versandscript mit richtig viel Arbeit verbunden ist.

                          EDIT: Gerade nachgelesen: Angeblich muss die Erklärung mindestens in Textform per eMail verschickt werden.

                          Zuletzt geändert von less; 15.03.2007, 21:58.

                          Kommentar


                          • #14
                            werd ich bei meinen nächsten ebay käufen drauf achten.

                            Kommentar


                            • #15
                              Japp Cron. Mit mindestens 30 min. Abstand. Alles andere ist nicht wirklich sicher.

                              Kommentar

                              Lädt...
                              X