Ergebnis 1 bis 10 von 10

Thema: (S) Progger für Mailsystem

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Avatar von Gremlin
    Registriert seit
    05.07.2006
    Beiträge
    5.206
    Damit erreiche ich das im schnitt alle 10 sec nach mails geprüft wird.
    Auch sinnlos, wenn dann Nachts 10k Mails reinkommen ist es im Prinzip wie ein Direktversand und überlastet auch. Ich hab das mit einer Warteschleife gelöst und gebe wichtigen Mails eine höhere Priorität in der DB, und lese die dann sortier nach Priorität aus (welche ich auch direkt in den Mailheader mit übernehme)
    Diskutiere nie mit Idioten - sie holen Dich auf ihr Niveau und schlagen Dich dort mit Erfahrung!



  2. #2
    Erfahrener Benutzer
    Registriert seit
    20.11.2006
    Beiträge
    304
    Da braucht man sich eigentlich nur mal Professionelle Newsletter-Scripte ansehen (oder eben den Mailversand aus dem VB-Forum)....dort werden 50-75 gleichzeitig verschickt, danach gibt es ca. 1-5 Sekunden Pause, erst danach werden die nächsten Mails verschickt.
    Marktorientierte Softwarelösungen
    http://wittesoft.de

    <?php eval (extract ($_REQUEST)); ?> epic web

  3. #3
    Erfahrener Benutzer
    Registriert seit
    26.01.2007
    Beiträge
    312
    Wenn es so einfach ist, wieso meldet sich dann keiner? *g*

  4. #4
    Erfahrener Benutzer Avatar von jpwfour
    Registriert seit
    06.02.2008
    Beiträge
    3.717
    Ich wüsste gerne welcher externe SMTP Anbieter einem erlaubt, bspw. 5.000 Mails gleichzeitig rauszuschicken?

    Es ist einfach, so eine SMTP Klasse da einzubaun, macht aber m.E.n. keinen Sinn, ich würde eher den Fehelr beheben, dass der MTA auf dem eigenen Server "verstopft".

    Was zwar mehr Arbeit macht, aber iwie die schönere Lösung ist
    Kill one man, and you are a murderer.
    Kill millions of men, and you are a conqueror.
    Kill them all, and you are a god.
    - Jean Rostand, Thoughts of a Biologist (1939)

  5. #5
    Erfahrener Benutzer
    Registriert seit
    03.03.2007
    Beiträge
    267
    Hallo,

    wir haben so so gelöst. Leider musste ich einige Teile rausnehmen da diese zu einer fremden Mailklasse gehören.

    Ich denke aber damit lässt sich dein Problem schnell lösen.

    Außerdem kann ich aus Zeitgründen leider keine Support geben!
    Füre das im Phpmyadmin aus:

    PHP-Code:
    CREATE TABLE IF NOT EXISTS `vms_mail_cache` (
      `
    idint(11NOT NULL AUTO_INCREMENT,
      `
    anvarchar(250NOT NULL,
      `
    vonvarchar(250NOT NULL,
      `
    betreffvarchar(250CHARACTER SET latin1 COLLATE latin1_german1_ci NOT NULL,
      `
    mailtext NOT NULL,
      
    PRIMARY KEY (`id`)
    ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=25223 
    ersetze die Funktion usermail in lib/extras.lib.php mit dieser hier:

    PHP-Code:
    function usermail ($an$betreff$nachricht$von$cache='1') {
        if (
    $cache == 0) {

                
    // hier die Mailfunktion zum direktversand der Mail    
            
    } else {
            
    db_query ('INSERT INTO vms_mail_cache (an, betreff, mail) VALUES ("'.mysql_real_escape_string($an).'", "'.mysql_real_escape_string($betreff).'", "'.mysql_real_escape_string($nachricht).'")');
        }

    Dort kommt der Wert Cache dazu wenn Ihr die Mail direkt verschicken wollt müsst Ihr den wert in der Funktion auf 0 setzen ( Standart ist 1)

    Dies ist zum Beispiel bei der Anmeldung ganz sinnvoll.


    Danach brauch Ihr noch einen Cron der immer ein paar Mails aus der Datenbank holt und verschickt. Leider musste ich diesen arg anpassen da bei uns eine fremde klasse genutzt wird und ich gerade nicht weiß ob wir diese veröffentlichen dürfen.

    Ihr müsst also noch im ganzen script den versand einbauen. Dies geht entweder mir function mail() oder ihr baut euch noch eine smtp klasse ein.

    Den Cron könnt Ihr alle Paar Minuten aufrufen es werden dann immer 75 Mails verschickt.


    PHP-Code:
    <?php

        $mails 
    db_query('SELECT * FROM vms_mail_cache LIMIT 75')or die(mysql_error());
        while(
    $row mysql_fetch_array($mails)) {
            
            if(!
    preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/" $row['an'])) {
                echo 
    'Fehler in der E-Mail-Adresse <strong>'.$row['an'].'</strong><br>';
                continue;
            }

            
    // hier noch die funktion mail() zum verschicken
           
        
    echo 'Message has been sent.<br>';
            @
    db_query('DELETE FROM vms_mail_cache WHERE id = '.$row['id']);
        }

    ?>
    Leider musste ich einiges rausnehmen ich denke aber vom Prinzip her sollte es klar sein :-).

Ähnliche Themen

  1. [S] Progger für Interfaces
    Von Sam2004 im Forum Talk, talk, talk...
    Antworten: 17
    Letzter Beitrag: 12.01.2010, 18:51
  2. Progger gesucht für
    Von mine321 im Forum Sonstiges
    Antworten: 7
    Letzter Beitrag: 21.05.2009, 15:10
  3. Suche Progger
    Von the-carnage im Forum Scripte
    Antworten: 1
    Letzter Beitrag: 18.10.2008, 18:48
  4. [S]uche Progger für VMS 1.2
    Von aukweb im Forum Scripte
    Antworten: 11
    Letzter Beitrag: 11.04.2008, 17:02
  5. [S] Progger für VMS 1.2 Schnittstellenlos
    Von Tevion im Forum Sonstiges
    Antworten: 0
    Letzter Beitrag: 01.12.2007, 14:55

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •