DE - AnfragenAuto Email nach längerer abwesenheit


09.03.2012, 08:05 - N0B0DY19 - webSPELL newbie - 39 Posts
Hi
Ich habe mal eine frage und zwar gibt es ein addon das automatisch (nach einstellbarer zeit)
Automatisch eine email mit vorgegeben text versendet?
Also ich mein zb.
User X ist 3 tage Offline ->wird automatisch (ohne nachhilfe) eine email versand mit benutzer defenierten text?

Bitte um hilfe..!!
 
20.04.2012, 10:28 - DeeM - webSPELL newbie - 3 Posts
Das lässt sich Programmieren und dürfte nicht allzu schwer sein.

Datenbank ein Feld anlegen wo du deklarierst ob eine Mail schon versand wurde! Also einen Boolean Datentyp nutzen (TRUE or FALSE)

Dann
Timestamp des letzten Logins vergleichen mit aktuellem Timestamp und if größer als 3 tage dann achauen ob schon Mail versendet if mailversendet = false sende mail()
else mache nichts

Versuch das mal umzusetzen und ich könnte dabei helfen.

Gruß
DeeM
 
21.04.2012, 00:48 - N0B0DY19 - webSPELL newbie - 39 Posts
DeeM wrote:

Das lässt sich Programmieren und dürfte nicht allzu schwer sein.

Datenbank ein Feld anlegen wo du deklarierst ob eine Mail schon versand wurde! Also einen Boolean Datentyp nutzen (TRUE or FALSE)

Dann
Timestamp des letzten Logins vergleichen mit aktuellem Timestamp und if größer als 3 tage dann achauen ob schon Mail versendet if mailversendet = false sende mail()
else mache nichts

Versuch das mal umzusetzen und ich könnte dabei helfen.

Gruß
DeeM


wenn du mir helfen könntest wäre nett von dir weil mit der daten bank
geschichte kenn ich mich so gut wie garnicht aus
 
21.04.2012, 08:25 - Kaliber - webSPELL newbie - 70 Posts
Hi würde dir gerne helfen ^^ hab das mal vorbereitet aber noch nicht getestet ist auch nur ein Anfang könnte man noch ausbauen!
Code:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
     $automail = mysql_query("SELECT * FROM `".PREFIX."user`");

        $rows = mysql_fetch_object($automail);
        //Nach wie vielen tagen user eine mail erhalten sollen!
        $days = 30;
                  
     $zwischen = time() - $rows->lastlogin;
     $zeit = round($zwischen/(3600*24));
     $zeit_noch = $days - $zeit;

     if ($zeit_noch <= 0)
     { 
         //Hier die Mail Funktion rein!
     }

     


[url=http://www.spellstar.de/]SpellStar.de[/url] kostenlose Clanpage erstellen [url=http://www.spellstar.de/imghost]SpellStar Bilder Upload[/url] [url=http://www.ebesucher.de/?ref=Spellstar]Mehr Besucher für deine page? Klick Hier!!![/url]

 
21.04.2012, 10:50 - DeeM - webSPELL newbie - 3 Posts
Kaliber wrote:

Hi würde dir gerne helfen ^^ hab das mal vorbereitet aber noch nicht getestet ist auch nur ein Anfang könnte man noch ausbauen!
Code:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
     $automail = mysql_query("SELECT * FROM `".PREFIX."user`");

        $rows = mysql_fetch_object($automail);
        //Nach wie vielen tagen user eine mail erhalten sollen!
        $days = 30;
                  
     $zwischen = time() - $rows->lastlogin;
     $zeit = round($zwischen/(3600*24));
     $zeit_noch = $days - $zeit;

     if ($zeit_noch <= 0)
     { 
         //Hier die Mail Funktion rein!
     }

     



Der Anfang ist schon mal gut.

Wenn du das nun machst denke an einen Eintrag in die Datenbank, das die Mail versendet wurde da sonst bei jedem Ausführen des Scriptes eine Mail an den gleiche User versendet wurde

Code:
1.
2.
3.
 
 $automail = mysql_query("SELECT * FROM `".PREFIX."user` [B]WHERE Erinnerung != TRUE[/B]");
 


So werden nur User ausgewählt die noch keine Mail erhalten haben alle anderen würden genervt werden und das Bombadieren jedentag wird nicht gerne gesehen.

Bei der Mail function dann ein mysql_query("UPDATE '".PREFIX."user' SET Erinnerung=True WHERE UserID = UserID ") Kenne mich mit der Datenbank Struktur noch nicht so gut aus.
 
21.04.2012, 11:15 - Kaliber - webSPELL newbie - 70 Posts
hab es mal erweitert hatte aber nich viel zeit ist nicht getestet!

Code:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
     $automail = mysql_query("SELECT * FROM `".PREFIX."user`");

       while($rows = mysql_fetch_object($automail)){
        //Nach wie vielen tagen User eine Mail erhalten sollen!
        $days = 30;
                  
     $zwischen = time() - $rows->lastlogin;
     $zeit = round($zwischen/(3600*24));
     $zeit_noch = $days - $zeit;

  //schaut ob der User schon eine Mail bekommen hat
       if ($rows->automail; <= 0){
    //schaut ob er 30 tage nicht eingelogt hat
     if ($zeit_noch <= 0)
     {
   //Speichert in der db das der User eine Mail bekommen hat  
    mysql_query("UPDATE '".PREFIX."user' SET automail=1") 
       //Hier die Mail Funktion
      $nickname = $rows->nickname;
               $ToEmail = $rows->mail;
               $ToName = $rows->username;
               $header =  str_replace(Array('%username%', '%pagetitle%', '%homepage_url%'), Array(stripslashes($username), $hp_title, $hp_url), $_language->module['automail_subject']);
               $Message = str_replace(Array('%username%', '%pagetitle%', '%homepage_url%'), Array(stripslashes($username), $hp_title, $hp_url), $_language->module['automail_text']);
      
mail($ToEmail,$header, $Message, "From:".$admin_email."\nContent-type: text/plain; charset=utf-8\n");
     }
    }
}


[url=http://www.spellstar.de/]SpellStar.de[/url] kostenlose Clanpage erstellen [url=http://www.spellstar.de/imghost]SpellStar Bilder Upload[/url] [url=http://www.ebesucher.de/?ref=Spellstar]Mehr Besucher für deine page? Klick Hier!!![/url]

 
21.04.2012, 11:35 - YoShI- - webSPELL hero - 1799 Posts
Das wird dann nur eine email an die erste person in der mysql query schicken.
 
21.04.2012, 12:58 - [Fabian] - webSPELL user - 418 Posts
Einfach statt der einseitigen Auswahlabfrage eine Schleife verwenden, schon hast du das Problem gelöst das immer nur die erste Person aus dem Query auch die E-Mail erhält.

EDIT: Okay 1 if Abfrage sollte doch noch drin sein zwinkern undzwar die

if($wakeup == "true") {
EMAIL SENDEN KRAM blabla
}

Ich hätte jedenfalls n boolean Wert genommen, könnt aber auch 1 & 0 nehmen hab mir das Script nicht genau angeguckt welche Variante ihr nutzt




[URL=http://www.golf2forum.de]Das VW Golf 2 Forum[/URL]

 
21.04.2012, 14:21 - Kaliber - webSPELL newbie - 70 Posts
ja genau sorry hab die schleife vergessen und würde das ganze auch als cronjob machen wegen Performances
hab die Schleife oben eingefügt!

[url=http://www.spellstar.de/]SpellStar.de[/url] kostenlose Clanpage erstellen [url=http://www.spellstar.de/imghost]SpellStar Bilder Upload[/url] [url=http://www.ebesucher.de/?ref=Spellstar]Mehr Besucher für deine page? Klick Hier!!![/url]

 
21.04.2012, 14:56 - Kaliber - webSPELL newbie - 70 Posts
hab das ganze mal als addon gemacht
http://www.webspell.or...on=details&addonID=10

[url=http://www.spellstar.de/]SpellStar.de[/url] kostenlose Clanpage erstellen [url=http://www.spellstar.de/imghost]SpellStar Bilder Upload[/url] [url=http://www.ebesucher.de/?ref=Spellstar]Mehr Besucher für deine page? Klick Hier!!![/url]

 
21.04.2012, 15:36 - [Fabian] - webSPELL user - 418 Posts
Die Sufu hat sogar einen ehemaligen Thread hervorgebracht zwinkern

http://www.webspell.or...rum_topic&topic=17079

[URL=http://www.golf2forum.de]Das VW Golf 2 Forum[/URL]

 
21.04.2012, 16:22 - Kaliber - webSPELL newbie - 70 Posts
auch gut so kann mans auch machen zwinkern

so hab den code nochmal bearbeitet und jetzt müsste es Funktionieren zwinkern

[toggle=Code]
Code:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
<?php

include("_mysql.php");
include("_settings.php");
include("_functions.php");

$_language->read_module('automail');

    $automail = mysql_query("SELECT * FROM `".PREFIX."user`");

     while($rows = mysql_fetch_object($automail)){
     //Nach wie vielen tagen User eine Mail erhalten sollen!
     $days = 30;
                  
     $zwischen = time() - $rows->lastlogin;
     $zeit = round($zwischen/(3600*24));
     $zeit_noch = $days - $zeit;
     $userid = $rows->userID;
  //schaut ob der User schon eine Mail bekommen hat
     if ($rows->automail <= 0){
    //schaut ob er 30 tage nicht eingelogt hat
     if ($zeit_noch <= 0){
       //Speichert in der db das der User eine Mail bekommen hat  
       mysql_query("UPDATE '".PREFIX."user' SET automail=1 WHERE userID='".$userid."'");
               //Hier die Mail Funktion
               $nickname = $rows->nickname;
               $ToEmail = $rows->mail;
               $username = $rows->username;
               $header =  str_replace(Array('%username%', '%pagetitle%', '%homepage_url%'), Array(stripslashes($username), $hp_title, $hp_url), $_language->module['automail_subject']);
               $Message = str_replace(Array('%username%', '%pagetitle%', '%homepage_url%'), Array(stripslashes($username), $hp_title, $hp_url), $_language->module['automail_text']);
      
               mail($username,$header, $Message, "From:".$admin_email."\nContent-type: text/plain; charset=utf-8\n");
     }
  }
}

?>
[/toggle]

[url=http://www.spellstar.de/]SpellStar.de[/url] kostenlose Clanpage erstellen [url=http://www.spellstar.de/imghost]SpellStar Bilder Upload[/url] [url=http://www.ebesucher.de/?ref=Spellstar]Mehr Besucher für deine page? Klick Hier!!![/url]

 
21.04.2012, 22:32 - YoShI- - webSPELL hero - 1799 Posts
Es wäre auch sinnvoller wenn man den gesamten Zeitvergleich in die SQL Query einbaut.
 
22.04.2012, 09:22 - Kaliber - webSPELL newbie - 70 Posts
ja klar schon aber nur wen man möchte das nach nochmal x tagen ein mail verschickt werden soll oder man könnte es auch so machen das der User dann gelöscht wird zwinkern

[url=http://www.spellstar.de/]SpellStar.de[/url] kostenlose Clanpage erstellen [url=http://www.spellstar.de/imghost]SpellStar Bilder Upload[/url] [url=http://www.ebesucher.de/?ref=Spellstar]Mehr Besucher für deine page? Klick Hier!!![/url]