Ergebnis 1 bis 10 von 10

Thema: (S) Progger für Mailsystem

  1. #1
    Erfahrener Benutzer
    Registriert seit
    26.01.2007
    Beiträge
    312

    (S) Progger für Mailsystem

    Hallo zusammen,

    da bei mir die Paidmails alle per php-mail versendet werden, sorgt das regelmäßig für einen verstopften Mailserver.
    Deshalb suche ich jmd, der mir das Mailsystem so umbauen könnte, dass die Mails alle per smtp versendet werden.
    Anzumerken wäre, dass der Mailversand kein Standard-Skript vom VMS 1 ist, da dieses schon stark geändert wurde.
    Freue mich auf eure Angebote!

  2. #2
    Erfahrener Benutzer Avatar von jpwfour
    Registriert seit
    06.02.2008
    Beiträge
    3.717
    Ich würde da nicht das Rad neu erfinden, sondern:

    a) eine SMTP-Mail-Klasse runterladen, bspw. von:
    http://www.phpclasses.org/search.htm...=0&go_search=1

    b) diese in der extras.lib.php einbinden

    c) den aufruf für die klasse in der extras.lib.php in der funkiton usermail() einfügen.

    Wobei in dem Falle dann für jede Email eine extra SMTP Verbindung geöffnet wid, und wenn jetzt schon die Anzahl deinen Mailserver überfordert...

    Besser:
    Newsletter für User deaktivieren, die sich länger als bspw. 30 Tage nicht mehr eingeloggt haben.

    Paidmails für User deaktivieren, die schon länger als bspw. 5 Tage keine mehr bestästigt haben.

    Mail-Software aktualisieren/besser konfigurieren/wechseln

    Mails in Warteschlange stecken, also nicht 200.000 Paidmails mit einen PHP Script aufruf verschicken, sondern via Cronjob nach und nach in bspw. 500er Paketen verschicken lassen.
    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)

  3. #3
    Erfahrener Benutzer
    Registriert seit
    03.03.2007
    Beiträge
    267
    Zitat Zitat von jpwfour Beitrag anzeigen
    Mails in Warteschlange stecken, also nicht 200.000 Paidmails mit einen PHP Script aufruf verschicken, sondern via Cronjob nach und nach in bspw. 500er Paketen verschicken lassen.

    So machen wir das und ganz einfach zu Lösen. Einfach in die Usermail den Query rein und einen cron schreiben der immer ein paar Mails verschickt ( bei uns 25 in 5 minuten).

    zusätzlich haben wird bei der Funktion USermail noch eine Variable die, die Mails direkt verschickt wenn diese angehängt ist ( bei aktivierungsmails).

  4. #4
    Benutzer
    Registriert seit
    16.08.2006
    Beiträge
    60
    Ich hab das auch per Cron gelöst.
    allrdings ist der Cron auch bei 3 verschieden Servern jede Minute eingetragen und zusätzlich noch bei einigen Free Cron diensten mit der kürzesten Frequenz. Damit erreiche ich das im schnitt alle 10 sec nach mails geprüft wird.

    mfg
    Aradiv

  5. #5
    Erfahrener Benutzer
    Registriert seit
    26.01.2007
    Beiträge
    312
    @jpwfour
    Vielen Dank für die Tipps! Das mit dem Cronjob haben wir ja bereits so gelöst und es läuft. Nur das einzige Problem ist eben, dass wir per phpmail versenden, statt per smtp. Das müsste eben in der Mailversand.php umgeschrieben werden.
    Vielleicht willst du das ja machen? :-)

  6. #6
    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!



  7. #7
    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

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

  9. #9
    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)

  10. #10
    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
  •