automatische Geburtstags e-Mail

Hast du Vorschläge, was wir an Admidio noch verbessern könnten ? Hier kannst du uns deine Vorstellung an neuen Funktionen mitteilen.
Antworten
Stefan
Beiträge: 29
Registriert: 7. Apr 2009, 15:38

automatische Geburtstags e-Mail

Beitrag von Stefan »

Hallo zusammen,
gibt es schon eine Möglichkeit eine automatische bzw. teilautomatisch per Klick Geburtstags e-Mail zu versenden.
Es sollte dann eine e-Mail mit in einem Template vordefinierten Standardtext an alle Geburtstagskinder und nachträgliche versendet werden.

Gruss
Stefan
superminis
Beiträge: 119
Registriert: 30. Jun 2008, 20:05
Wohnort: Baden
Kontaktdaten:

Beitrag von superminis »

Automatisch geht nicht, da du sonst einen Cronjob bräuchtest, der dir das erledigt. Ich behaupte einmal, nicht jeder hat so etwas auf seinem Server (ich jedenfalls nicht ;-) )

Die Idee gefällt mir jedenfalls.
muellermanu
Beiträge: 113
Registriert: 27. Feb 2009, 00:02
Wohnort: Schönau a.d. Brend
Kontaktdaten:

Beitrag von muellermanu »

Bei mir auf dem Server kann ich Cronjobs einstellen!

Fände die Möglichkeit echt super, das eine Glückwunschmail automatisch oder teilautomatisch versendet würden werde.

Man braucht aber nicht unbedingt eine Cronjob möglichkeit mann könnte es doch auch per klick erledigen lassen auf einen entprechenden Button in Admidio oder sobald die Startseite von Admidio aufgerufen wird.

Kenne die möglichkeiten von Mail to Date, kann aber sowas leider mit meinem Wissen nicht programieren.

Nur mal so als Anregung!

Würde die Funktion Geburtstagsmail mir auch wünschen!

Gruß Manu
Gruß Manu
The-Eagle
Beiträge: 15
Registriert: 10. Mai 2009, 12:03

Beitrag von The-Eagle »

muellermanu hat geschrieben:Bei mir auf dem Server kann ich Cronjobs einstellen!

Fände die Möglichkeit echt super, das eine Glückwunschmail automatisch oder teilautomatisch versendet würden werde.

Man braucht aber nicht unbedingt eine Cronjob möglichkeit mann könnte es doch auch per klick erledigen lassen auf einen entprechenden Button in Admidio oder sobald die Startseite von Admidio aufgerufen wird.

Kenne die möglichkeiten von Mail to Date, kann aber sowas leider mit meinem Wissen nicht programieren.

Nur mal so als Anregung!

Würde die Funktion Geburtstagsmail mir auch wünschen!

Gruß Manu
Ist den ein Anzeige, wenn einer den admidio betritt, wer Geburtstag hat?
Herzliche Grüße aus Freital
und danke für Eure Hilfe:-)

Wolfgang
OKraftDD
Beiträge: 21
Registriert: 22. Jun 2009, 10:28

Beitrag von OKraftDD »

The-Eagle hat geschrieben:
muellermanu hat geschrieben:Bei mir auf dem Server kann ich Cronjobs einstellen!

Fände die Möglichkeit echt super, das eine Glückwunschmail automatisch oder teilautomatisch versendet würden werde.

Man braucht aber nicht unbedingt eine Cronjob möglichkeit mann könnte es doch auch per klick erledigen lassen auf einen entprechenden Button in Admidio oder sobald die Startseite von Admidio aufgerufen wird.

Kenne die möglichkeiten von Mail to Date, kann aber sowas leider mit meinem Wissen nicht programieren.

Nur mal so als Anregung!

Würde die Funktion Geburtstagsmail mir auch wünschen!

Gruß Manu
Ist den ein Anzeige, wenn einer den admidio betritt, wer Geburtstag hat?
Ja: viewtopic.php?t=509
scholzi
Beiträge: 20
Registriert: 29. Okt 2010, 16:19

Beitrag von scholzi »

ich habe noch immernicht verstanden, wie ich es nun machen soll, dass die Geburtstage und auch der Kalender in der Datenbank erscheinen können, so wie es auch im Screenshots zu sehen ist.
wer kann mir da weiterhelfen?

scholzi ;)
matzman2000
Former team member
Beiträge: 1087
Registriert: 2. Sep 2007, 17:12
Wohnort: Itzstedt
Kontaktdaten:

Beitrag von matzman2000 »

Das ist jeweils mit einem Plugin möglich. Es gibt zB das Geburtstagsplugin, womit Du expliziet anzeigen lassen kannst, wer in einem definierten Zeitraum Geburtstag hat. Und es gibt das Calendarplugin, mit dem Du auch zusätzlich zu Terminen die Geburtstage im Kalender anzeigen lassen kannst.

Beide Plugins müssen natürlich gemäss der Installationsanleitung installiert und konfiguriert werden. Vielleicht schaust Du da nochmal in die Doku und versuchst Dich mal an der Plugin-Installation. Wenn dann noch Fragen auftauchen: Ab dmit ins Plugin-Forum!
Stefan
Beiträge: 29
Registriert: 7. Apr 2009, 15:38

Beitrag von Stefan »

Hallo zusammen,
hat schon jemand ne Idee wo man den Button zum halbautomatischen Versand der Geburtsmails am besten unterbringt und ob es Sinn macht die Funktionen des Mailings gleich in das Geburtstagsmodul einzubauen.

Gibt es schon fertige Funktionen zum Zusammenbau und senden von Emails in Admidio?



LG
Stefan
scholzi
Beiträge: 20
Registriert: 29. Okt 2010, 16:19

Beitrag von scholzi »

Stefan hat geschrieben: ... halbautomatischen Versand der Geburtsmails ...
das habe ich ja noch garnicht mitbekommen! wo finde ich diese Funktion und wie richte ich die am besten ein???

scholzi ;)
Stefan
Beiträge: 29
Registriert: 7. Apr 2009, 15:38

Beitrag von Stefan »

Hallo Scholzi,
die Funktion gibt es auch noch nicht ist ja ein Wunsch von uns.

Ich versuche selbst es rein zu pfuschen.

LG
Stefan
scholzi
Beiträge: 20
Registriert: 29. Okt 2010, 16:19

Beitrag von scholzi »

ok, wenn du damit irgendwann mal erfolg hast, dann lass es mich wissen! :-) :-)

scholzi ;)
Stefan
Beiträge: 29
Registriert: 7. Apr 2009, 15:38

Beitrag von Stefan »

Hallo zusammen,
ich hab jetzt mal was zusammen gebaut.

Bitte an die Entwickler von Admidio mal drüber schauen.
Es ist nicht schön aber es funktioniert.
Auf die Sicherheit hab ich noch keinen großen Wert gelegt kommt aber noch.

Was ich noch nicht hinbekommen habe ist, wie bekomme ich die Status Ausgabe ins Admidio Fenster rein.

Zum testen einfach als Plugin speichern und in die my_body_bottom.php einbinden



LG
Stefan

Code: Alles auswählen

<?php
/******************************************************************************
 * Birthday Mail Send
 *
 * Version 1.0.1
 *
 *****************************************************************************/

// Pfad des Plugins ermitteln
$plugin_folder_pos = strpos(__FILE__, "adm_plugins") + 11;
$plugin_file_pos   = strpos(__FILE__, "birthday.php");
$plugin_folder     = substr(__FILE__, $plugin_folder_pos+1, $plugin_file_pos-$plugin_folder_pos-2);

if(!defined('PLUGIN_PATH'))
{
    define('PLUGIN_PATH', substr(__FILE__, 0, $plugin_folder_pos));
}
require_once(PLUGIN_PATH. "/../adm_program/system/common.php");
require_once(PLUGIN_PATH. "/../adm_program/system/classes/email.php");


// DB auf Admidio setzen, da evtl. noch andere DBs beim User laufen
$g_db->setCurrentDB();


if(isset($plg_show_zeitraum) == false || is_numeric($plg_show_names_extern) == false)
{
    $plg_show_zeitraum = 5;
}

if(isset($plg_show_future) == false || is_numeric($plg_show_names_extern) == false)
{
    $plg_show_future = 1;
}

// /////////////////////////////////////////////////////// //
// Prüfen, ob die Rollenbedingung gesetzt wurde            //
// /////////////////////////////////////////////////////// //
if(isset($plg_rolle_sql) == false || ($plg_rolle_sql) =="")
	{
		$rol_sql = "is not null";
	}
	else
	{
		$rol_sql = "in ".$plg_rolle_sql;
	}

// /////////////////////////////////////////////////////// //
// Prüfen, ob die Sotierbedingung gesetzt wurde            //
// /////////////////////////////////////////////////////// //
if(isset($plg_sort_sql) == false || ($plg_sort_sql) =="")
	{
		$sort_sql = "desc";
	}
	else
	{
		$sort_sql = $plg_sort_sql;
	}


// Überschreiben des Zeitraumes 1 Tag vor und nach
$plg_show_future = 1;
$plg_show_zeitraum = 1;


$sql    = "SELECT DISTINCT usr_id, usr_login_name,
                           last_name.usd_value as last_name, first_name.usd_value as first_name,
                           birthday.bday as birthday,
			   birthday.bdate,
			   DATEDIFF(birthday.bdate, '".DATETIME_NOW."') AS days_to_bdate,
			   YEAR(bdate) - YEAR(bday) AS age,
			   email.usd_value as email,
                           gender.usd_value as gender
             FROM ". TBL_USERS. " users
             JOIN
	    	(
			(SELECT
				usd_usr_id,
				usd_value AS bday,
				CONCAT(year('".DATETIME_NOW."'), '-', month(usd_value),'-', dayofmonth(bd1.usd_value)) AS bdate
				FROM ". TBL_USER_DATA. " bd1
				WHERE DATEDIFF(CONCAT(year('".DATETIME_NOW."'), '-', month(usd_value),'-', dayofmonth(bd1.usd_value)), '".DATETIME_NOW."') BETWEEN -$plg_show_zeitraum AND $plg_show_future
              			AND usd_usf_id = ". $g_current_user->getProperty("Geburtstag", "usf_id"). ")
		UNION
			(SELECT
				usd_usr_id,
				usd_value AS bday,
				CONCAT(year('".DATETIME_NOW."')-1, '-', month(usd_value),'-', dayofmonth(bd2.usd_value)) AS bdate
				FROM ". TBL_USER_DATA. " bd2
				WHERE DATEDIFF(CONCAT(year('".DATETIME_NOW."')-1, '-', month(usd_value),'-', dayofmonth(bd2.usd_value)), '".DATETIME_NOW."') BETWEEN -$plg_show_zeitraum AND $plg_show_future
              			AND usd_usf_id = ". $g_current_user->getProperty("Geburtstag", "usf_id"). ")
		UNION
			(SELECT
				usd_usr_id,
				usd_value AS bday,
				CONCAT(year('".DATETIME_NOW."')+1, '-', month(usd_value),'-', dayofmonth(bd3.usd_value)) AS bdate
				FROM ". TBL_USER_DATA. " bd3
				WHERE DATEDIFF(CONCAT(year('".DATETIME_NOW."')+1, '-', month(usd_value),'-', dayofmonth(bd3.usd_value)), '".DATETIME_NOW."') BETWEEN -$plg_show_zeitraum AND $plg_show_future
              			AND usd_usf_id = ". $g_current_user->getProperty("Geburtstag", "usf_id"). ")
		 ) AS birthday
               ON birthday.usd_usr_id = usr_id
             LEFT JOIN ". TBL_USER_DATA. " as last_name
               ON last_name.usd_usr_id = usr_id
              AND last_name.usd_usf_id = ". $g_current_user->getProperty("Nachname", "usf_id"). "
             LEFT JOIN ". TBL_USER_DATA. " as first_name
               ON first_name.usd_usr_id = usr_id
              AND first_name.usd_usf_id = ". $g_current_user->getProperty("Vorname", "usf_id"). "
             LEFT JOIN ". TBL_USER_DATA. " as email
               ON email.usd_usr_id = usr_id
              AND email.usd_usf_id = ". $g_current_user->getProperty("E-Mail", "usf_id"). "
             LEFT JOIN ". TBL_USER_DATA. " as gender
               ON gender.usd_usr_id = usr_id
              AND gender.usd_usf_id = ". $g_current_user->getProperty("Geschlecht", "usf_id"). "
             LEFT JOIN ". TBL_MEMBERS. "
               ON mem_usr_id = usr_id
              AND mem_begin <= '".DATE_NOW."'
              AND mem_end    > '".DATE_NOW."'
             JOIN ". TBL_ROLES. "
               ON mem_rol_id = rol_id
              AND rol_valid  = 1
             JOIN ". TBL_CATEGORIES. "
               ON rol_cat_id = cat_id
              AND cat_org_id = ". $g_current_organization->getValue("org_id"). "
            WHERE usr_valid = 1
			AND mem_rol_id ".$rol_sql."
            ORDER BY days_to_bdate ".$sort_sql.", last_name, first_name ";

// echo $sql;

$result = $g_db->query($sql);

$anz_geb = $g_db->num_rows($result);

// echo $anz_geb;

echo "<table border='1'>";

echo "<tr>";
echo "<th>";
echo "Vorname";
echo "</th>";

echo "<th>";
echo "Nachname";
echo "</th>";

echo "<th>";
echo "Emailadresse";
echo "</th>";

echo "<th>";
echo "Geburtsdatum";
echo "</th>";

echo "<th>";
echo "Geburtstag";
echo "</th>";

echo "<th>";
echo "Alter";
echo "</th>";

echo "<th>";
echo "Tage bis Geburtstag";
echo "</th>";

echo "<th>";
echo "Status";
echo "</th>";

echo "</tr>";

while($row = $g_db->fetch_array($result))
            {

            $plg_show_name = $row['first_name']. " ". $row['last_name'];

			echo "<tr>";
				echo "<td>";
				echo $row['last_name'];
				echo "</td>";

				echo "<td>";
				echo $row['first_name'];
				echo "</td>";

				echo "<td>";
				echo $row['email'];
				echo "</td>";

				echo "<td>";
				echo $row['birthday'];
				echo "</td>";

				echo "<td>";
				echo $row['bdate'];
				echo "</td>";

				echo "<td>";
				echo $row['age'];
				echo "</td>";

				echo "<td>";
				echo $row['days_to_bdate'];
				echo "</td>";

{
	$email = new Email();

	$email->setSender("xxx@googlemail.com","xxxxxx");

	$email->setSubject("Geburtstagsmail");


	$email->addRecipient("xxxx@googlemail.com","xxxx");

	if ($row['email'] != NULL)

	{
		$email->addRecipient($row['email'],$plg_show_name);
	}

	//$email->addCopy("xxxx","xxxxx");

	if ($row['days_to_bdate'] <= 0)
	{
		$sql_1="nachtraeglich";
	}
	else
	{
		$sql_1="";
	}

	$mail_body ="Hallo ". $plg_show_name. ",\n\n";
	$mail_body = $mail_body. "Wir wuenschen Dir ". $sql_1. " alles Gute zum ". $row['age']. ". Geburtstag am ". mysqldatetime("d.m.y", $row['bdate']). "\n\n";

	$mail_body = $mail_body. "LG\n\n ";


	$email->setText($mail_body);

	$status = $email->sendEmail();

	echo "<td>";
	echo $status;
	echo "</td>";

	echo "</tr>";

}
	}
        $g_message->show("mail_send", " die Geburtstagskinder", "Hinweis");
?>
[/list]
Antworten