E-Mail an Admins mit API-Call Funktion

  • Seite 1 von 3
12.12.2019 11:24
avatar  Mike48
#1
avatar
User

Wie kann man mit der API Funktion call(sendmail) E-Mails an die Admins schicken?
Ich habe mal als userID eine "0" genommen, wird aber abgelehnt.
Die userID 1 muss ja nicht zwangsläufig ein Admin sein. Der Hauptadmin kann ja mal gewechselt haben.

Am besten wäre E-Mail an alle Admins die eine Benachrichtigung eingestellt habenunter
Admin → Einstellungen → Weitere Einstellugen → Administrator bei Neuanmeldung eines Users informieren?


 Antworten

 Beitrag melden
12.12.2019 11:28
avatar  Ingmar
#2
avatar
Technik

Da gibt es keine allgemein gültige Id für alle Admins.

Am einfachsten machst du dir eine Config-Variable, in der du z.B. kommagetrennt die IDs der Admins speicherst, die vom Plugin benachrichtigt werden sollen.

-edit-
Alternativ kannst du dir (sofern der Call in einem "action"-Element gemacht wird) per Jquery die Liste der Admins direkt aus der Administration besorgen und dann verarbeiten:

1
 
$temp = $("<div>"); $temp.load("/admin/?page=benutzer #adminlist",function(){console.log($temp.html());}); 
 


 Antworten

 Beitrag melden
12.12.2019 11:34
avatar  Mike48
#3
avatar
User

Kann man mit call(sendmail) an mehrere userIDs gleichzeitig schicken?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
/*
Parameter
userid (Mitglied an das die Nachricht gesendet werden soll)
mailtitle (Betreffzeile der Email)
mailboy (Inhalt der Email)

Tipp: Um Leerzeilen im Mailbody zu erzeugen, muss der Javascript Zeilenumbruch \n verwendet werden.
*/

maildata = {
userid : "1,2,3",
mailtitle : "Neue Leserechte",
mailbody : "Hallo \n\nDu bist nun in der Gruppe "Dauergäste" und hast weitere Leserechte bekommen"};

xobor.plugin("modcomment").call("sendmail",maildata,function(res){
alert("Email versendet");
});
 


 Antworten

 Beitrag melden
12.12.2019 13:07
avatar  Ingmar
#4
avatar
Technik

Nein, das geht nicht.

Da musst du einen Call pro userid machen.


etwa so:

1
2
3
4
5
6
7
8
 
var adminids = [1,2,3]; 
for(i in adminids){
sendPluginmail(adminids[i]);
};
function sendPluginMail(adminid){
//hier der code zum mail versenden
}
 
 


 Antworten

 Beitrag melden
12.12.2019 16:55
avatar  Mike48
#5
avatar
User

Danke.

Habe ich so gemacht.
Dein Code für die Admin-IDs hat mir auch sehr geholfen.
Habe mit match() mir die IDs da rausgezogen und in ein Array geschrieben und dann mit Schleife verschickt.


 Antworten

 Beitrag melden
12.12.2019 18:19
avatar  Ingmar
#6
avatar
Technik

👍

Und nur bevor du sich wunderst:
Sowohl der ajax call in die Administration, als auch der mailversand klappen natürlich nur dann, wenn sie von einem admin ausgeführt werden. Wenn das in einem plugin auch von normalen Mitgliedern ausgelöst werden soll musst du ein (spärlich dokumentiertes) "Action element" dafür verwenden


 Antworten

 Beitrag melden
12.12.2019 19:17
avatar  Mike48
#7
avatar
User

Beides wird nur benötigt, wenn ein Admin online geht.

Wenn es eine Möglichkeit gibt, daß E-Mail Versand und die Anfrage der Admin ids auch ausgelöst werden kann wenn nur Mitglieder online sind, wäre eine gute Sache.


 Antworten

 Beitrag melden
12.12.2019 21:46
avatar  Olaf
#8
Ol
User

Im "mailbody" dürfen natürlich keine weiteren Anführungszeichen im Text erscheinen,wenn Du den Text in Anführungszeichen gesetzt hat.

1
 
mailbody : "Hallo \n\nDu bist nun in der Gruppe "Dauergäste" und hast weitere Leserechte bekommen"};
 



In meinem Plugin funktionierte der Zeilenumbruch in den Mails nur mit doppelten Schrägstriche "\\n".
Vielleicht ist das jetzt schon in Xobor korriert worden...

Gruß
Olaf


 Antworten

 Beitrag melden
12.12.2019 21:53
avatar  Mike48
#9
avatar
User

Die spärlichen Infos über Action Type habe ich gelsen und komme nicht weiter damit.

Ich habe eine neues Element erstellt
Type: user_login
action_type_action: New

Code:

1
2
3
4
5
6
7
8
9
10
11
12
 
<script>
 
var maildata = {
userid : '1',
mailtitle : 'E-Mail per Action Type',
mailbody : 'Action Type ist User Login'
};
xobor.plugin("miketest0008").call("sendmail",maildata,function(res){
//alert("Email versendet - Result: "+res);
});
 
</script>
 



Ich habe erwartet, eine E-Mail zu bekommen wenn sich einer einloggt.
Passiert aber nichts.
Egal ob sich ein Admin oder Mitglied einloggt, nix passiert.

Kann mir einer auf die Sprünge helfen


 Antworten

 Beitrag melden
12.12.2019 23:30
avatar  Ingmar
#10
avatar
Technik

Spontan würde ich sagen versuche es mal ohne den script-tag, dann sollte das klappen. Wenn nicht müsste ich auch erstmal nachschauen, das habe ich auch schon länger nicht mehr verwendet.

Action-Elemente sind immer reine Javascript-Dateien, daher brauchst du den Tag nicht.

Das Action Element wird immer nach einer bestimmten Aktion (in diesem Fall also nach einem neuen Login) ausgeführt. Da der Code ja vorher vom Admin festgelegt wird kann es auch ohne Sicherheitsbedenken mit Adminrechten ausgeführt werden.


 Antworten

 Beitrag melden
13.12.2019 08:00
avatar  Mike48
#11
avatar
User

Ich hatte es mit und ohne script probiert. Jedes mal ohne Ergebnis.

Was bedeutet beim action_type_action Neu, Bearbeiten, Löschen.

Ist das zB. bei Beiträge einen neuen erstellen, einen bearbeiten oder löschen?
Hätte also bei Login keine Bedeutung?


 Antworten

 Beitrag melden
13.12.2019 09:09
avatar  Mike48
#12
avatar
User

Auch mit einem neuen Action-Type bekomme ich keine E-Mail versendet.
forum_message - actions: new - forum_message
Neues Thema und auch neuer Beitrag, keine E-Mail.

1
2
3
4
5
6
7
8
 
var maildata = {
userid : '1',
mailtitle : 'E-Mail per Action Type',
mailbody : 'Action Type ist User Login'
};
xobor.plugin("miketest0008").call("sendmail",maildata,function(res){
//alert("Email versendet - Result: "+res);
});
 


 Antworten

 Beitrag melden
13.12.2019 11:24
avatar  Ingmar
#13
avatar
Technik

Ich erstelle da mal ein Beispiel-Plugin und schicke es dir. Kann dir aber noch nicht versprechen, dass ich heute dazu komme.


 Antworten

 Beitrag melden
13.12.2019 11:56
avatar  Mike48
#14
avatar
User

Danke im Voraus.
Bitte an: 643516 - seniorenklubkb.xobor.de
Das ist mein Testforum. Plugin Platz habe ich frei gemacht. Der Installation steht nichts im Wege.


 Antworten

 Beitrag melden
13.12.2019 15:50
avatar  Ingmar
#15
avatar
Technik

Hi @Mike48

Ich habe da einen Fehler gefunden (und behoben), durch den die Mail-Funktion in den Action-Elementen nicht ausgeführt wurde.

Probier bitte noch einmal, ob es in deinem Testplugin jetzt klappt, der Code ist so eigentlich korrekt.


 Antworten

 Beitrag melden
Bereits Mitglied?
Jetzt anmelden!
Mitglied werden?
Jetzt registrieren!