Emails vom Script aus senden - by Rawr

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Guten Abend
    Heute zeige ich euch mal wie man Emails vom Script aus senden kann :)


    Der nette Slice hat dafür mal ein gutes Include geschrieben,
    was ich selber auch nutze. Hier findet ihr den Thread


    Was ihr benötigt
    * Grundkenntnisse in PAWN
    * 5 min. um es zu verstehen
    * Benötigten Includes und PHP Script


    Wie funktioniert das denn jetzt?
    SendMail("Email des Empfängers","Eure Email","Euer Name","Titel","Naricht");
    Mehr braucht ihr nicht, leicht oder ?


    Beispiel
    Ich habe für euch jetzt mal ein Beispiel geschrieben.
    Es ist eine Verifikations "System".
    Es werden keine Daten gespeichert, lediglich abgefragt und gesetzt


    Erklärung
    Man gibt /verifizieren ein dann kommt ein Dialog wo man seine Email eingeben
    muss, hat man das getan, erhält man eine Email, dann kommt man zur Verifikationskey
    Eingabe, hat man den Verifikationskey eingegeben, ist man temporär verifziert, da ja nichts gespeichert wird


    Klick mich um das Beispiel zu öffnen

    //Includes
    #include <a_samp>
    #include <zcmd>
    #define MAILER_URL "www.DieUrlWoDasPhpScriptIst.de"
    #include <mailer>
    //Dialog ID's
    enum
    {
    dialog1,
    dialog2
    }
    //Spieler Variablen
    enum pDaten
    {
    pName[MAX_PLAYER_NAME+1],
    pVerifikationskey[35],
    pEmail[35],
    bool:pVerifiziert
    }
    new
    PlayerInfo[MAX_PLAYERS][pDaten];
    //Callback: OnPlayerConnect
    public OnPlayerConnect(playerid)
    {
    //Wir speichern den Namen des Spielers
    GetPlayerName(playerid,PlayerInfo[playerid][pName],MAX_PLAYER_NAME);
    return true;
    }
    //Befehl: Verifizieren
    CMD:verifizieren(playerid,params[])
    {
    //Wenn er schon verifiziert ist
    if(PlayerInfo[playerid][pVerifiziert])return SendClientMessage(playerid,-1,"Du bist bereits verifiziert");
    //Wenn er eine Email eingegeben hat
    if(strlen(PlayerInfo[playerid][pEmail])>5)return ShowPlayerDialog(playerid,dialog2,DIALOG_STYLE_INPUT,"Verifikation","Bitte gebe hier den Verifikationskey ein, den du per Email erhalten hast!","Weiter","Abbrechen");
    //Wenn er noch nicht verifiziert ist, oder noch keine Email eingegeben hat
    ShowPlayerDialog(playerid,dialog1,DIALOG_STYLE_INPUT,"Verifikation","Bitte gebe hier deine Email Adresse ein","Weiter","Abbrechen");
    return true;
    }
    //Callback: OnDialogResponse
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    switch(dialogid)
    {
    case dialog1:
    {
    //Wenn er nichts eingegeben hat
    if(!strlen(inputtext))return ShowPlayerDialog(playerid,dialog1,DIALOG_STYLE_INPUT,"Verifikation","Bitte gebe hier deine Email Adresse ein","Weiter","Abbrechen");
    //Wir speichern die Emailadresse des Spielers
    format(PlayerInfo[playerid][pEmail],35,"%s",inputtext);
    //Wir generieren den Verifikationskey aus einer Zahl zwichen 1000 und 9999
    new string[500],
    key = 1000 + random(9999);
    PlayerInfo[playerid][pVerifikationskey]=key;
    //Wir formatieren eine Naricht und senden die Email
    format(string,sizeof(string),"Hallo %s!\nDu möchtest dich auf unserem Server verifizieren!\nGebe dazu InGame einfach folgenden Verifikationskey ein\nKey: %d\nViel Spass noch!",PlayerInfo[playerid][pName],PlayerInfo[playerid][pVerifikationskey]);
    SendMail(PlayerInfo[playerid][pEmail],"EureEmail@anbieter.de", "Administration", "Verifikation",string);
    //Er kommt zur Verifikationskey Eingabe
    ShowPlayerDialog(playerid,dialog2,DIALOG_STYLE_INPUT,"Verifikation","Bitte gebe hier den Verifikationskey ein, den du per Email erhalten hast!","Weiter","Abbrechen");
    }
    case dialog2:
    {
    //Wenn er nichts eingegeben hat
    if(!strlen(inputtext))return ShowPlayerDialog(playerid,dialog2,DIALOG_STYLE_INPUT,"Verifikation","Bitte gebe hier den Verifikationskey ein, den du per Email erhalten hast!","Weiter","Abbrechen");
    //Wenn der eingegebene Code richtig war
    if(strval(inputtext)==PlayerInfo[playerid][pVerifikationskey])
    {
    PlayerInfo[playerid][pVerifiziert]=true;
    SendClientMessage(playerid,-1,"Du hast dich erfolgreich verifiziert!");
    }
    }
    }
    return true;
    }


    Download
    Das PHP-Skript
    Das Include
    Das Beispiel


    Schlusswort
    Ich hoffe ich konnte dem ein oder anderen helfen,
    um Feedback, Verbesserungsvorschläge und Bewertungen
    würde ich mich freuen, solltet Ihr Fragen und/oder Probleme
    haben, meldet euch hier im Thread.

    2 Mal editiert, zuletzt von Rawr () aus folgendem Grund: #1 Titel #2 Text

  • Sehr nice geschrieben, könnte es auch gebrauchen nur nirgends ein tutorial gefunden^^
    9/10


    Aber meine frage, man benötigt nicht zwingend eine TLD oder?
    Oder könnte man auch einfach mit ner gmx.de mail arbeiten?

    Vielen Dank :)
    Quatsch, kannst auch nen Freehoster nehmen, braucht keine TLD, aber einen EmailServer auf dem Webspace ;)


    Sieht gut aus.
    Doch ne Frage, was hat das für einen Sinn?

    Danke :)
    Wie oben schon als Beispiel, ein Verifikations System, oder eine Passwort vergessen Funktion ;)



    Passwort vergessen mit mail zb ;)

    Richtig

  • Du verstehst aber das es die englische include ist?
    Er hat nur ein tutorial dazu geschrieben ;)

    Richtig.


    Falls der ein oder andere sich wunder warum Ihr keine Emails erhaltet:
    Dort wo Ihr das PHP-Script liegen habt (Webspace) benötigt ein Email Server ;)

  • //kleiner Push :)


    Sollte jemand Fragen oder Probleme haben, kann er sie gerne hier stellen. :)