PM`s als Mail

Begonnen von kampfschaf, 04 Juli 2003, 22:51:32

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

Juliet

Grundsätzlich eigentlich nicht - bei mir lief es nach einfügen des Codes ohne weiteres Setzen von Variabeln.

Poste doch mal Deinen Code plus/minus 10-15 Zeilen und mache einen Screenshort Deiner neu eingefügten Datenbankzeile.

smartmusic

###########################
function submitmessage($arrpostdata, $uid){
   include("modules/Private_Messages/inboxsize-conf.php");
   global $prefix, $user_prefix, $PHP_SELF, $module_name, $refresh, $bgcolor2;
   $uid = (int)$uid;
   if(empty($arrpostdata["to_user"]) && empty($arrpostdata["to_all"]) || (!empty($arrpostdata["to_all"]) && !mxIsAdmin())) {
      prvmsgerror(_ERRMSGNOUSER);
      }
   if (empty($arrpostdata["to_all"])) {
      $result = sql_query("select uid from ".$user_prefix."_users where uname=\"".mxAddSlashesForSQL($arrpostdata["to_user"])."\"");
      list($to_userid) = sql_fetch_row($result);
      if (!$to_userid) {
         prvmsgerror(_PMSUSERNOTINDB);
         }
      }
      // Milhouse_Erweiterung
$result_anzahl = sql_query("SELECT Count(*) FROM ".$prefix."_priv_msgs WHERE to_userid=$to_userid");
$qry_sent = "SELECT Count(*) FROM ".$prefix."_priv_msgs_send WHERE from_userid=$uid";
$result_sent = sql_query($qry_sent);
$count_anzahl = sql_fetch_row($result_anzahl);
$countpmsent = sql_fetch_row($result_sent);
if ($countpmsent[0] >= $sentboxsize) {
    prvmsgerror(_SENTPMBOXVOLL);
}
if ($count_anzahl[0] >= $inboxsize) {
    prvmsgerror(_PMBOXVOLL);
}
//Ende Erweiterung
   if(!($arrpostdata["subject"])) {
      prvmsgerror(_ERRMSGNOSUBJECT);
      }
   if (strip_tags($arrpostdata["subject"]) != $arrpostdata["subject"]) {
      prvmsgerror(_ERRMSGNOHTMLINSUBJECT);
      }
   if(!($arrpostdata["image"])) {
      prvmsgerror(_ERRMSGNOICON);
      }
   if(!($arrpostdata["message"])) {
      prvmsgerror(_ERRMSGNOMESSAGE);
      }
   $arrpostdata["message"] = mxAddSlashesForSQL($arrpostdata["message"]);
   $arrpostdata["subject"] = mxAddSlashesForSQL(strip_tags($arrpostdata["subject"]));
   
   $qry1 = "INSERT INTO ".$prefix."_priv_msgs (msg_image, subject, from_userid, to_userid, msg_time, msg_text) ";
   $qry_msg_sent = "INSERT INTO ".$prefix."_priv_msgs_send (msg_image, subject, to_userid, from_userid, msg_time, msg_text) ";   //Gesendete PMs speichern
   if (empty($arrpostdata["to_all"])) {
   $cookie = mxGetUserSession();
      $ignore = sql_query("select ignoreid, uname from ".$user_prefix."_users_ignorelist where uid='".$to_userid."'");
      list($ignoreid, $ignorename) = sql_fetch_row($ignore);
      if ($ignoreid == $uid) {


list($touser_uname,$touser_email,$user_pm_mail) = sql_fetch_row(sql_query("SELECT uname, email, user_pm_mail FROM ".$user_prefix."_users WHERE uid='$to_userid'", $dbi), $dbi);
$message = "Halle $touser_uname,\nSie haben auf GeceAlem.de eine neue Private Nachricht erhalten.
WICHTIG: Beachten Sie, dass dies nur eine Benachrichtigung ist. Bitte antworten Sie nicht auf diese E-Mail.
Ihre Nachricht können Sie hier abholen:\n http://www.gecealem.de/modules.php?name=Private_Messages\n
=================================================================================
Wenn Sie nicht per Email über neue PN's informiert werden wollen können Sie die Option hier deaktivieren:\nhttp://www.gecealem.de/modules.php?name=Your_Account&op=edithome";
$subject = "Private Nachricht auf GeceAlem.de";
if (!mxIsUserOnline($touser_uname) && ($user_pm_mail ==1))
{
   mxMail($touser_email, "$subject", $message, $GLOBALS['adminmail'],"text","PM-Mail");
}


messagesheader($uid);
echo "<table border=\"0\" cellspacing=\"1\" cellpadding=\"3\" width=\"100%\" bgcolor=\"$bgcolor1\">"
   ."<TR BGCOLOR=\"$bgcolor1\">"
   ."<TD><br><center>".$ignorename." möchste keine Nachrichten von dir!<br><a href=\"modules.php?name=$module_name\">"._PMSRETURNTOPMSG."</a></center><br /></TD>"
   ."</TR></table>";



screeshot:

www.gecealem.de/screen.jpg


Chris007

Hi

Danke für deine großartige IDEE

Habe es so erweitert wie du es beschrieben hast und bei mir klappt es wunderbar.

Eine frage habe ich noch zu diesem Tehma.

Gibt es keine fariable für die url? also http://www.DEINE_DOMAIN.de die man da einsetzen für kann.

$URL/modules.php?name=Private_Messages ?????? oder ist da nichts möglich muss man immer im code umschreiben?

Vieleicht hat ja einer eine IDEE zu.

Besten Dank Chris
Besten DANK Chris

jubilee

Hallo !
Zitat$URL/modules.php?name=Private_Messages
Wenn Du Scripte auf demselben Server aufrufst, dann brauchst Du ja nicht unbedingt absolut zu referenzieren.
Du könntest ja auch relativ referenzieren. D.H. du bräuchtest das http://www.deinedomain.de gar nicht angeben, sondern
referenzierst auf modules.php?name=.....
MfG
jubilee

Chris007

Hallo

Aber hier geht es ja um die E-Mail die der user bekommt da benötigt man schon die ganze URL.

Dachte mir nur das es da eine fariable gibt.

Besten Dank Chris

smartmusic

das kann doch nicht sein,es geht einfach nicht.... :wall:

onkel

Muß sagen bei mir kommt auch keine Mail, und bei user_pm_mail  steht eine 1 aber keine Mails.



mfg
Onke


jubilee

Hallo !
ZitatMuß sagen bei mir kommt auch keine Mail, und bei user_pm_mail  steht eine 1 aber keine Mails
Mail kommt aber auch nur, wenn der ensprechende User AUSGELOGGT ist, wenn die PM zugestellt wird.
Habt ihr das berücksichtigt ?
MfG
jubilee

smartmusic

ja,habe alles schon so oft ausprobiert...sogar die ganze nacht abgewartet und heute morgen nochmal eine pm gesendet....

jubilee

Hmmm ....
Hab mal gerad den Code-Abschnitt durchgeehen den Du gespostet hast.
Ist das so im Modul gelistet ?
-->
Zitatif ($ignoreid == $uid) {


list($touser_uname,$touser_email,$user_pm_mail) = sql_fetch_row(sql_query("SELECT uname, email, user_pm_mail FROM ".$user_prefix."_users WHERE uid='$to_userid'", $dbi), $dbi);
$message = "Halle $touser_uname
oder kommt da zwischen 
Zitatif ($ignoreid == $uid) {
und
Zitatlist($touser_uname,$touser
noch anderer Code ??
MfG
jubilee

Juliet

Zitat$ignore = sql_query("select ignoreid, uname from ".$user_prefix."_users_ignorelist where uid='".$to_userid."'");
      list($ignoreid, $ignorename) = sql_fetch_row($ignore);
      if ($ignoreid == $uid) {


list($touser_uname,$touser_email,$user_pm_mail) = sql_fetch_row(sql_query("SELECT uname, email, user_pm_mail FROM ".$user_prefix."_users WHERE uid='$to_userid'", $dbi), $dbi);
$message = "Halle $touser_uname,\nSie haben auf GeceAlem.de eine neue Private Nachricht erhalten.
WICHTIG: Beachten Sie, dass dies nur eine Benachrichtigung ist. Bitte antworten Sie nicht auf diese E-Mail.
Ihre Nachricht können Sie hier abholen:\n http://www.gecealem.de/modules.php?name=Private_Messages\n
=================================================================================
Wenn Sie nicht per Email über neue PN's informiert werden wollen können Sie die Option hier deaktivieren:\nhttp://www.gecealem.de/modules.php?name=Your_Account&op=edithome";
$subject = "Private Nachricht auf GeceAlem.de";
if (!mxIsUserOnline($touser_uname) && ($user_pm_mail ==1))
{
   mxMail($touser_email, "$subject", $message, $GLOBALS['adminmail'],"text","PM-Mail");
}


messagesheader($uid);
echo "<table border=\"0\" cellspacing=\"1\" cellpadding=\"3\" width=\"100%\" bgcolor=\"$bgcolor1\">"
   ."<TR BGCOLOR=\"$bgcolor1\">"
   ."<TD><br><center>".$ignorename." möchste keine Nachrichten von dir!<br><a href=\"modules.php?name=$module_name\">"._PMSRETURNTOPMSG."</a></center><br /></TD>"
   ."</TR></table>";

Du hast den Code an die falsche Stelle der submitmessage eingefügt. Eigentlich sollte dort wo bei Dir messagesheader($uid); steht messagesheader(); stehen - so ist es jedenfalls bei mir. nach der ignore-Geschichte folgt weiter unten dann nochmal das erwähnte messagesheader($uid); und dort vor soll der genannte Code eingefügt werden :)

Sorry für die späte Antwort, ichw ar gestern nicht da :)

smartmusic

ich habe da noch zweimal messagesheader($uid); stehen.

ist es so nun richtig?

function submitmessage($arrpostdata, $uid){
   include("modules/Private_Messages/inboxsize-conf.php");
   global $prefix, $user_prefix, $PHP_SELF, $module_name, $refresh, $bgcolor2;
   $uid = (int)$uid;
   if(empty($arrpostdata["to_user"]) && empty($arrpostdata["to_all"]) || (!empty($arrpostdata["to_all"]) && !mxIsAdmin())) {
      prvmsgerror(_ERRMSGNOUSER);
      }
   if (empty($arrpostdata["to_all"])) {
      $result = sql_query("select uid from ".$user_prefix."_users where uname=\"".mxAddSlashesForSQL($arrpostdata["to_user"])."\"");
      list($to_userid) = sql_fetch_row($result);
      if (!$to_userid) {
         prvmsgerror(_PMSUSERNOTINDB);
         }
      }
      // Milhouse_Erweiterung
$result_anzahl = sql_query("SELECT Count(*) FROM ".$prefix."_priv_msgs WHERE to_userid=$to_userid");
$qry_sent = "SELECT Count(*) FROM ".$prefix."_priv_msgs_send WHERE from_userid=$uid";
$result_sent = sql_query($qry_sent);
$count_anzahl = sql_fetch_row($result_anzahl);
$countpmsent = sql_fetch_row($result_sent);
if ($countpmsent[0] >= $sentboxsize) {
    prvmsgerror(_SENTPMBOXVOLL);
}
if ($count_anzahl[0] >= $inboxsize) {
    prvmsgerror(_PMBOXVOLL);
}
//Ende Erweiterung
   if(!($arrpostdata["subject"])) {
      prvmsgerror(_ERRMSGNOSUBJECT);
      }
   if (strip_tags($arrpostdata["subject"]) != $arrpostdata["subject"]) {
      prvmsgerror(_ERRMSGNOHTMLINSUBJECT);
      }
   if(!($arrpostdata["image"])) {
      prvmsgerror(_ERRMSGNOICON);
      }
   if(!($arrpostdata["message"])) {
      prvmsgerror(_ERRMSGNOMESSAGE);
      }
   $arrpostdata["message"] = mxAddSlashesForSQL($arrpostdata["message"]);
   $arrpostdata["subject"] = mxAddSlashesForSQL(strip_tags($arrpostdata["subject"]));
   
   $qry1 = "INSERT INTO ".$prefix."_priv_msgs (msg_image, subject, from_userid, to_userid, msg_time, msg_text) ";
   $qry_msg_sent = "INSERT INTO ".$prefix."_priv_msgs_send (msg_image, subject, to_userid, from_userid, msg_time, msg_text) ";   //Gesendete PMs speichern
   if (empty($arrpostdata["to_all"])) {
   $cookie = mxGetUserSession();
      $ignore = sql_query("select ignoreid, uname from ".$user_prefix."_users_ignorelist where uid='".$to_userid."'");
      list($ignoreid, $ignorename) = sql_fetch_row($ignore);
      if ($ignoreid == $uid) {


messagesheader($uid);
echo "<table border=\"0\" cellspacing=\"1\" cellpadding=\"3\" width=\"100%\" bgcolor=\"$bgcolor1\">"
   ."<TR BGCOLOR=\"$bgcolor1\">"
   ."<TD><br><center>".$ignorename." möchste keine Nachrichten von dir!<br><a href=\"modules.php?name=$module_name\">"._PMSRETURNTOPMSG."</a></center><br /></TD>"
   ."</TR></table>";
         }else{
      $qry1 .= "VALUES ('".$arrpostdata["image"]."', '".$arrpostdata["subject"]."', ".$uid.", ".$to_userid.", now(), '".$arrpostdata["message"]."')";
        $qry_msg_sent .= "VALUES ('".$arrpostdata["image"]."', '".$arrpostdata["subject"]."', ".$to_userid.", ".$uid.", now(), '".$arrpostdata["message"]."')";
      if(!$result = sql_query($qry1)) {
         prvmsgerror(_ERRMSGNOSUBMIT);
         }
         if ($arrpostdata["notsave"]) {
        if(!$result = sql_query($qry_msg_sent)) {
         prvmsgerror(_ERRMSGNOSUBMIT);
         }
      }
list($touser_uname,$touser_email,$user_pm_mail) = sql_fetch_row(sql_query("SELECT uname, email, user_pm_mail FROM ".$user_prefix."_users WHERE uid='$to_userid'", $dbi), $dbi);
$message = "Halle $touser_uname,\nSie haben auf GeceAlem.de eine neue Private Nachricht erhalten.
WICHTIG: Beachten Sie, dass dies nur eine Benachrichtigung ist. Bitte antworten Sie nicht auf diese E-Mail.
Ihre Nachricht können Sie hier abholen:\n http://www.gecealem.de/modules.php?name=Private_Messages\n
=================================================================================
Wenn Sie nicht per Email über neue PN's informiert werden wollen können Sie die Option hier deaktivieren:\nhttp://www.gecealem.de/modules.php?name=Your_Account&op=edithome";
$subject = "Private Nachricht auf GeceAlem.de";
if (!mxIsUserOnline($touser_uname) && ($user_pm_mail ==1))
{
   mxMail($touser_email, "$subject", $message, $GLOBALS['adminmail'],"text","PM-Mail");
}
      messagesheader($uid);
   echo "<table border=\"0\" cellspacing=\"1\" cellpadding=\"3\" width=\"100%\" bgcolor=\"$bgcolor2\">"
   ."<TR BGCOLOR=\"$bgcolor2\">"
   ."<TD><br><center>"._PMSMSGPOSTED." ".((isset($i)) ? " (".$i." User)" : "")."<br><a href=\"modules.php?name=$module_name\">"._PMSRETURNTOPMSG."</a></center><br></TD>"
   ."</TR></table>";
      }
      }
   else {
      if (mxIsAdmin()) {
         $i = 0;
         $result = sql_query("select uid from ".$user_prefix."_users where user_stat=1 AND uid>1");
         while(list($to_userid) = sql_fetch_row($result)) {
            $qry2 = $qry1." VALUES ('".$arrpostdata["image"]."', '".$arrpostdata["subject"]."', ".$uid.", ".$to_userid.", now(), '".$arrpostdata["message"]."')";
            $result2 = sql_query($qry2);
            if ($result2) $i++;
            }
         }
         messagesheader($uid);
   echo "<table border=\"0\" cellspacing=\"1\" cellpadding=\"3\" width=\"100%\" bgcolor=\"$bgcolor2\">"
   ."<TR BGCOLOR=\"$bgcolor2\">"
   ."<TD><br><center>"._PMSMSGPOSTED." ".((isset($i)) ? " (".$i." User)" : "")."<br><a href=\"modules.php?name=$module_name\">"._PMSRETURNTOPMSG."</a></center><br></TD>"
   ."</TR></table>";
      }
   
   echo "<META http-equiv=\"Refresh\" content=\"".((isset($i)) ? ($refresh*4) : $refresh).";URL=modules.php?name=$module_name\">";
   }


es funktioniert wenn man über das profil eine nachricht schickt,aber bei mir nutzen die user am meisten den button pm der über den messenger läuft,

da funktioniert es nicht

Juliet

Ja, so habe ich den Code bei mir auch eingebunden.

Welchen Button im Messanger meinst Du? Bin etwas verwirrt ...

smartmusic

man kann ja über den messenger mails versenden in der gesamten userliste aber auch im profil gibt es einen button mit pm drauf,dadurch öffnet sich ja auch das messenger fenster

Homicide

dann mußt du den Code von Juliet auch in die Buddy.php einbauen.
vorzugsweise an die Stelle wo die PM gesendet werden soll :)

smartmusic

habe es ausprobiert,funktioniert nicht,an welche stelle müsste es und muss da noch was am code geändert werden?


function sendm($to, $to_userid, $msg_text, $subject, $notsave) {
   global $bgcolor1, $bgcolor2, $textcolor1, $textcolor2, $prefix, $user_prefix;
   $subject = strip_tags($subject);
   if (!$subject) $subject= _PMSFROM." ".$GLOBALS["userinfo"]["uname"]."";
   $subject = mxAddSlashesForSQL($subject);
   $msg_text = mxAddSlashesForSQL($msg_text);
   $sql = "INSERT INTO ${prefix}_priv_msgs (msg_image, subject, from_userid, to_userid, msg_time, msg_text) ";
   $sql_msg_sent = "INSERT INTO ${prefix}_priv_msgs_send (msg_image, subject, to_userid, from_userid, msg_time, msg_text) ";
   $sql .= "VALUES ('".$GLOBALS["subjectdefaulticon"]."', '$subject', '".$GLOBALS["userinfo"]["uid"]."', '$to_userid', now(), '$msg_text')";
   $sql_msg_sent .= "VALUES ('".$GLOBALS["subjectdefaulticon"]."', '$subject', '$to_userid', '".$GLOBALS["userinfo"]["uid"]."', now(), '$msg_text')";
      $ignore = sql_query("select ignoreid, uname from ".$user_prefix."_users_ignorelist where uid='".$to_userid."'");
      list($ignoreid, $ignorename) = sql_fetch_row($ignore);
      if ($ignoreid == $GLOBALS["userinfo"]["uid"]) {

create_headerforall(_PMSTITLE);
   create_bodyforall();
echo "<br><center>".$ignorename." möchste keine Nachrichten von dir!<br />"
   ."</TR></table>";
   create_footerforall();
         }else{
   if($to_userid && $msg_text){
      $result=sql_query($sql);
      if ($notsave) { sql_query($sql_msg_sent); }
      }
   if(empty($result)){
      $msg= "<br>\n<b><br>"._PMSBUDDYERROR."</b><br>\n<br>\n\n";
      $timeout=15000;
      }
   else{
      $msg= "<br>\n<br>\n<b>"._PMSSENDED1." $to "._PMSSENDED2."</b><br>\n<br>\n\n";
      $timeout=1000;
      }
   create_headerforall(_PMSTITLE);
   create_bodyforall();
   echo "<br>\n<br>\n";
   echo "<table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"0\" bgcolor=\"$bgcolor1\"><tr>\n<td align=\"center\">\n";
   echo "<table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"3\" bgcolor=\"$bgcolor2\">\n";
   echo "<tr>\n<td align=\"center\">\n$msg";
   echo "<a href=\"javascript:window.close()\" onClick='window.close()'><img src=\"".$GLOBALS["url_button"]."/schliessen.gif\" border=0 width=\"102\" height=\"20\" style=\"background-color: transparent;\"></a><br>\n<br>\n\n";
   echo "<font class=\"tiny\">"._PMSAUTOCLOSE."</font><br>\n<br>\n\n";
   echo "<script language=\"JavaScript\">\n";
   echo "      <!--\n";
   echo "      setTimeout(\"self.close()\", $timeout);\n";
   echo "      // -->\n";
   echo "   </script>";
   echo "</td>\n</tr>\n</table>\n</td>\n</tr>\n</table>\n";
   create_footerforall();
   }
}

Juliet

Nein, nein, nein, ich kann Euch nicht folgen. Was ist genau der Messagner in Euren Augen?

Es gibt das Modul "Private Messages" - wenn ich darüber eine PN sende erhält der Efänger eine Emai, soweit er nicht online ist.

Desweiteren habe ich noch die Möglichkeit über das Pop-Up eine PN zu senden. Das Pop-Up öffnet sich über Klick auf den User in der Onlineliste ... wenn ein user in der Onlineliste steht ist er onlne und erhält folglich eh keine Email ... nun erklärt mir daher bitte nochmal genau wo der unterschied zwischen Messanger in der Userliste und Messenger im Profil liegt. Beides führt zum Modul Private Messages und nuzt die index.php.

Wenn ich mich recht entsinne wird die buddy.php doch nur für Versand über Pop_Up genutzt - or not?

smartmusic

habe es nun,funktioniert alles....

also:

über die normale index.php ist ja alles klar...

...aber man kann auch den buddy öffnen und die userliste aufrufen,der user die nicht online sind...und man hat im profil der user den button pm wo sich auch das message fenster des buddys öffnet...

andere frage noch juliet????

ich kann bei deinem text in der index nichts hinzufügen an zeilen z.b. wo man auch das passwort neu anfordern kann ???? verstehe ich nicht.

Juliet

Hm, wieso geht das nicht?


$message = "Halle $touser_uname,\nSie haben auf GeceAlem.de eine neue Private Nachricht erhalten.
WICHTIG: Beachten Sie, dass dies nur eine Benachrichtigung ist. Bitte antworten Sie nicht auf diese E-Mail.
Ihre Nachricht können Sie hier abholen:\n http://www.gecealem.de/modules.php?name=Private_Messages\n
=================================================================================
Wenn Sie nicht per Email über neue PN's informiert werden wollen können Sie die Option hier deaktivieren:\nhttp://www.gecealem.de/modules.php?name=Your_Account&op=edithome\n
=================================================================================
Und hier zum Beispiel noch mehr Text und Links";

und wieso geht das nicht?

smartmusic

Nun klappt alles wunderbar

danke an alle