Glückwunsch-PM und / oder eMail bei Geburtstag

Begonnen von jafern, 13 Dezember 2007, 15:48:54

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

jafern

Hallo  :smile:

habe zwar schon ein Posting zu diesem Thema gefunden, aber das war aus 2004, hatte keine Lösung geboten und war zudem gesperrt... :'(

Deswegen noch mal zu meinem besseren Verständnis:
es sammeln sich im Laufe der Jahre ja unheimlich viele (registrierte) User an, die entweder nie, bzw. selten wieder zurückkehren...  :(
Wäre es nicht eine sinnvolle Maßnahme, diesen Usern wenigstens einmal im Jahr (halt zum Geburtstag) automatisch mittels netter PM / eMail zu gratulieren und somit dezent an einen baldigen Besusch zu erinnern?

Bei mir gingen dann nach aktuellem Stand (durchschnittlich) ca. 7 Emails täglich raus..., ist doch so gesehen auch (kostenlose) Werbung für die jeweilige Homepage...  ;)

Was meint Ihr?

VG
José
Habe bereits die Suche bemüht, allerdings aus Zeitgründen - sofern vorhanden - nur die ersten 3-4 Seiten der Treffer gesichtet. Für mehr hatte ich leider keine Zeit, weil jeder Artikel so interessant war ... ;-)

Future

Moin,

es gab mal so ein Script, das schlicht Maintenance hieß und aus einer DAtei bestand. Hat das ganze der per Scronjob erledigt.
Konnte man auch super erweitern. Musste mal schauen ob das noch ein User hat oder du es irgendwo in den großen weitenr des Internets als Download findest.
Geschrieben wurde es glaube ich von Micro(Mirko Glotz -> www.guggemahier.de)

jafern

Hallo Future,

vielen Dank für Deine Anregung; auf den Tipp nach Maintenance zu suchen, wäre ich wahrscheinlich nie gekommen..  ;)

Auf Umwegen (über google) bin ich dann auf einen Thread hierzu innerhalb dieses Forums gestossen...  :)

Nach einigen Anpassungen läuft es jetzt wie gewünscht!

Danke + Gruß
José
Habe bereits die Suche bemüht, allerdings aus Zeitgründen - sofern vorhanden - nur die ersten 3-4 Seiten der Treffer gesichtet. Für mehr hatte ich leider keine Zeit, weil jeder Artikel so interessant war ... ;-)

netzer

Hi,
da ich es auch gerne verwenden würde, aber mit scripten nicht so bewandert bin, willst du die Anpassungen evtl. hier weiter geben?


pikar

Wenn das Script bei dir jetzt läuft hätte ich auch interesse drann....

jafern

Hi  :smile:,

habe Eure Postings leider nicht eher zur Kenntnis nehmen können, da ich gestern erst sehr spät heim kam (unsere Firma zieht gerade um; gestern wurde es 01:00 Uhr...  :puzzled: ).

Auf jeden Fall teile ich Euch noch heute im Verlauf des Tages mit, wie ich das Script bei mir zum Laufen gebracht habe.

Bis später..  ;)

VG
José
Habe bereits die Suche bemüht, allerdings aus Zeitgründen - sofern vorhanden - nur die ersten 3-4 Seiten der Treffer gesichtet. Für mehr hatte ich leider keine Zeit, weil jeder Artikel so interessant war ... ;-)


jafern

Hi  :smile: ,

eigentlich ist dort alles gut beschrieben; alleine die Tatsache, dass ich es zum Laufen bringen konnte, will doch schon was heissen...  :BD:

Also, entweder, die weiter oben genannte maintenance.php runterladen, lokal abspeichern und nach Bearbeitung per ftp in Euer Web laden, oder angehängte Datei als Vorlage nehmen und diese dann hochladen (die englischen Texte habe ich allerdings entfernt, und ich verzichte auf Log-Einträge).
Natürlich auch meinen dortigen Text abändern / auf Eure Bedürfnisse anpassen  ;)

Hinweis: ich mache mir immer erst eine Sicherungskopie der Original-Datei (z. B. maintenance_orig.php), und arbeite dann mit der eigentlichen Datei, so dass ich notfalls immer vergleichen kann.

Das Wichtigste zuerst: in Zeile 22 Euer eigenes PW eintragen!

Durch das Includen der mainfile.php holt sich das Script offensichtlich die datenbankrelevanten Informationen der User (Username, Geburtsdatum, etc.), bzw. der Seite selbst ('dbname', 'sitename').

Das war schon fast alles..., nachdem die modifizierte Datei hochgeladen wurde (ich hab' sie direkt im Root), kann man durch Aufruf der URL http://www.eure-seite.de/maintenance.php?setpw=euer_password das Script aufrufen, und dadurch - sofern Geburtstagskinder vorhanden sind - die Glückwunschmails versenden.

Ich habe die Funktionalität dann ganz einfach so getestet, dass ich mein eigenes Geburtsdatum in meinem Profil auf den entsprechenden Tag geändert und das Script aufgerufen habe (evtl. vorhandene, tatsächliche User-Geburtstage habe ich temporär zurückdatiert!).

Darauf hin erhielt ich das Glückwunschmail und konnte noch einige optische Veränderungen vornehmen (Zeilenumbruch, Absätze, usw.).

Zuletzt habe ich noch bei meinem Provider einen Cronjob eingerichtet, der dafür sorgt, dass täglich zu einer vorgegebenen Zeit das Script aufgerufen wird. Das könnte man natürlich auch jeden Tag händisch veranlassen ...  :puzzled:

Wenn noch Fragen sein sollten, kann ich gerne versuchen sie zu beantworten.

LG
José
Habe bereits die Suche bemüht, allerdings aus Zeitgründen - sofern vorhanden - nur die ersten 3-4 Seiten der Treffer gesichtet. Für mehr hatte ich leider keine Zeit, weil jeder Artikel so interessant war ... ;-)

Future

Zitatund ich verzichte auf Log-Einträge

Wer diese drinne lässt, kann sich immer sehr gut im Secure Log angucken wieviele Geb. Mails pro Tag rausgegangen sind.

wolf-x

Hallo,

Bin zufallig auf dieser thread gestollpert und da ich so etwas auch gern haben mochte fur mein bike portal ein paar fragen.
Hab ich da richtig verstanden, mit dieser datei bekommen die user die geburtstag haben eine PM ?
Ist die original datei noch verfugbar ? (finde sie nicht auf der guggemahier seite)
Wurde gern versuchen ob es auch geht ein bild(jpg) zu senden an stelle vom text.

wolf-x

Hi,

:thumbup: Danke fur die datei !  :BD: Habe den text auf Französisch ubersetzt und auf der test seite mal probiert, dort lauft PMX 1.10 und die datei funzt.
Muss jetzt nur noch ein link zu einem bild einfugen.

Ivan

Hallo,

habe genau nach Anleitung von jafern gehandelt, jedoch bekomme ich keine Geburtstagsmails.
Das "OK" von maintenance.php?setpw=passwort bei Aufrauf im Browser habe ich bekommen.
Was mache ich falsch?

_icke_

Hat denn einer deiner User auch Geburtstag?

Das Du das Passwort im Link angegeben hast, was auch in der maintenance.php steht, davon gehe ich mal aus.

Marc

Ivan

ja klar!
geburtstag haben zwei.
Einer der wirklich hat und mich habe ich aufs heutige Datum gesetzt.
Passwort stimmt auch. Bei Falscheingabe erscheint ein ERROR!
So Blöd bin ich auch nicht  :BD:

_icke_

Das wollte ich damit auch nicht sagen, aber Menschen machen Fehler.

$bday_mail = 1; das stimmt auch?

Marc

Ivan

War auch kein Angriff sorry. Das stimmt das Menschen fehler machen  :BD:

Hier meine Datei:

<?php // $Id:$

/**
 * maintenance for
 * mmcX from guggemahier.de
 * and for vkpMX 2.x and pragmaMX from maax-design.de
 * @version $Id$
 * @copyright 2004 by microg @ http://guggemahier.de
 *
 * Start this file with Daily Script on Shell with:
 * lynx -dump http://www.your-domain.com/maintenance.php?setpw=Your-Code
 * or:
 * with simple Webbrowser
 * http://www.your-domain.com/maintenance.php?setpw=Your-Code
 *
 **/

include("mainfile.php");

# Ohne Passwort geht gar nix
# Unbedingt ändern!!! Change Password!!
$passwort "test";

# Wenn leer, dann speichere keine Textdatei!
$log_pfad "";

$subject_name "Dorfdepp".$GLOBALS['sitename']."";
$grussformel_de "Das Team vom <i>".$GLOBALS['sitename']."</i> wünscht Dir als treues, registriertes Mitglied unserer Community alles erdenklich Gute zu Deinem Ehrentag.\n\n<br>Gesundheit, viel Glück im neuen Lebensjahr und dass alle Wünsche in Erfüllung gehen mögen ;-)\n\n<br>Viele Grüße!";

# soll zum Geburtstag gratuliert werden? 1 = ja, 0 = nein
$bday_mail 1;
# sollen PM's gelöscht werden? 1 = ja, 0 = nein
$del_pms 0;
$zeit_pm "40"; # Wennja, wie alt dürfen die PM's sein? (In Tagen)
# Soll die Datenbank optimiert werden? 1 = ja, 0 = nein
$optimize_dbase 0;

# Das Passwort muss passen, sonst lass es ein und mach einen Eintrag im SecLog!
if($_REQUEST['setpw'] === $passwort){
# Timeouts nach oben setzen. Bei großen Datenbanken wird es oft problematisch mit den Timeouts!
@set_time_limit (4000);
@ini_set("max_execution_time",4000);
@ignore_user_abort(1);

if($bday_mail){
# gratuliere zum Geburtstag
$sql "SELECT email, uname, (YEAR( CURRENT_DATE ) - YEAR( user_bday )) - ( RIGHT( CURRENT_DATE, 5 ) < RIGHT( user_bday, 5 ) ) AS user_age FROM ${user_prefix}_users WHERE MONTH(user_bday)=MONTH(CURRENT_DATE) AND DAYOFMONTH(user_bday)=DAYOFMONTH(CURRENT_DATE) ORDER BY user_age DESC;";
$result sql_query($sql);
while (list($email$uname$user_age) = sql_fetch_row($result)) {
# Wenn eine gültige eMail Adresse vorliegt versende das Mail
if(!empty($email) or eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,6}$",$email)){
$mailsubject="".$GLOBALS['sitename']." - Geburtstagsgrüße";
$mailtext=""
."\n\nHallo ".$uname."!<br>\n\nHerzlichen Glückwunsch zu Deinem heutigen ".$user_age.". Geburtstag!<br>"
."\n\n".$grussformel_de
."";
mxmail($email$mailsubject$mailtext$adminmail"html"""$subject_name);
}
}
}

if($del_pms){
# Hier löschen was älter als XX Tage in den privaten Nachrichten rumliegt
$wassoller  mktime(0,0,0date("m"),date("d")-$zeit_pm,date("Y"));
$i=0;
$qry "SELECT
msg_id,
UNIX_TIMESTAMP(msg_time) as stamp
FROM
${prefix}_priv_msgs
WHERE
UNIX_TIMESTAMP(msg_time)<='"
.$wassoller."';";
$res sql_query($qry);
$ok = array();$i=0;
while($listsql_fetch_array($res)){
# noch mal kontrollieren
if($list[1]<=$wassoller){
$ok[] = (int)$list[0];
}
}
if (count($ok)) {
$i count($ok);
$wechdamit implode(',',$ok);
$qry "DELETE FROM ${prefix}_priv_msgs WHERE (msg_id IN (".$wechdamit."));";
$res sql_query($qry);
}
sql_free_result($res);
$ergebnis[] = $i." PM delete";
}

if($optimize_dbase){
# hier optimieren wir mal alles was zur Datenbank gehört ;o)
$local_query 'SHOW TABLE STATUS FROM '.$dbname;
$result sql_query($local_query);
if ($result) {
while ($row sql_fetch_array($result)) {
$local_query 'OPTIMIZE TABLE '.$row[0];
sql_query($local_query);
}
}
sql_free_result($result);
$ergebnis[] = "DB Optimize \"".$dbname."\" : OK -";
}

# SecLog schreiben und gegebenenfalls Logdatei auf dem Server
$output date("H:i:s")." from: ".$_REQUEST['setpw']." (".$_SERVER['REMOTE_ADDR'].")";
foreach ($ergebnis as $key => $val) {
$output $output.$val;
}
if(!empty($log_pfad) and @readdir($log_pfad)){
$datei fopen($log_pfad.$dbname.".txt","a+");
fputs($datei,$output);
fclose($datei);
}
mxSecureLog("DB","Optimize Database OK - ".$_REQUEST['setpw']." (".$_SERVER['REMOTE_ADDR'].") - ".$i." PM delete");
echo "OK";
}else{
$output date("H:i:s")." from: ".$_REQUEST['setpw']." (".$_SERVER['REMOTE_ADDR'].") - DB Optimize \"".$dbname."\" : ERROR\n";
if(!empty($log_pfad) and @readdir($log_pfad)){
$datei fopen($log_pfad.$dbname.".txt","a+");
fputs($datei,$output);
fclose($datei);
}
mxSecureLog("DB","Optimize Database ERROR - ".$_REQUEST['setpw']." (".$_SERVER['REMOTE_ADDR'].")");
echo "Error";
}


?>

_icke_

Versuch mal die, meine geht 100%ig.

Paswort ist test

Ivan


Ivan

Wie gesagt. Auch nach upload deiner "maintenance.php"
keine Besserung.
Problem besteht nach wie vor.
Mit CHMOD gibts keine Problem da Windows Server!

Was nun?

Greetz
Ivan