SMTP und ESMTP mit der 39dll (E-Mails versenden)

    • Skript

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • SMTP und ESMTP mit der 39dll (E-Mails versenden)

      Hallo,
      ich hab mich wieder mal kurz mit SMTP befasst (Wikipedia und so) und hab es gerade geschafft eine E-Mail mit diese Skripten an mich selbst zu schicken, das ganze ist eigentlich Recht einfach. Der Nachteil es gibt keine Fehler Behandlung, ich hab das ganze mit Web.de getestet (ESMTP). SMTP wird verwendet um E-Mails zu versenden, meistens.

      Download: henrik1235.bplaced.net/upload/data/smtp.zip
      Informationen zu SMTP und ESMTP:
      de.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol
      de.wikipedia.org/wiki/SMTP-Auth
      Noch irgendwelche Hinweise:
      Es gibt nur wenig Fehlerbehandlung. :S Es gibt sehr viele Argumente die man in den Skripts nachlesen kann. Es wird
      39dll Version 2.5 verwendet.


      Skripte in GML Code: [hide='smtp']

      GML-Quellcode

      1. /*Versende E-Mails per SMTP mit der 39dll
      2. Achtung hier wird SMTP verwenden, wenn es einen Server gibt der ESMTP braucht (z.B. web.de)
      3. musst du das Skript ESMTP nehmen und es gibt nur wenig Fehlerbehandlung.
      4. by henrik1235
      5. Argumente
      6. 0:Server
      7. 1:Port(Standart 25)
      8. 2:Name
      9. 3:Von E-Mail
      10. 4:Für E-Mail
      11. 5:Betreff
      12. 6:Text
      13. Return:
      14. (Real)1 wenn es gut ging
      15. (String)Fehler*/
      16. //Verbindung
      17. var server;
      18. server=tcpconnect(argument0,argument1,1);
      19. if (server<=0) { return "No connection"; }
      20. setformat(server,1,chr(10));
      21. //Versenden
      22. var step,size,str;
      23. step=0;
      24. size=0;
      25. while(1)
      26. {
      27. size=receivemessage(server);
      28. if (size==0) { return "Connection lost."; }
      29. if (size>0)
      30. {
      31. str=readchars(bytesleft());
      32. if (string_char_at(str,1)!="2") { return str; }
      33. switch(step)
      34. {
      35. case 0:
      36. clearbuffer(); writechars("HELO "+argument2); sendmessage(server);
      37. break;
      38. case 1:
      39. clearbuffer(); writechars("MAIL FROM:<"+argument3+">" ); sendmessage(server);
      40. break;
      41. case 2:
      42. clearbuffer(); writechars("RCPT TO:<"+argument4+">" ); sendmessage(server);
      43. break;
      44. case 3:
      45. clearbuffer(); writechars("DATA"); sendmessage(server);
      46. break;
      47. case 4:
      48. var str;
      49. str="From: <"+argument3+">"+chr(10);
      50. str+="To: <"+argument4+">"+chr(10);
      51. str+="Subject: <"+argument5+">"+chr(10);
      52. str+=chr(10)+argument6;
      53. str+=chr(10)+".";
      54. clearbuffer(); writechars(str); sendmessage(server);
      55. break;
      56. case 5:
      57. clearbuffer(); writechars("QUIT"); sendmessage(server); closesocket(server);
      58. return 1;
      59. break;
      60. }
      61. step+=1;
      62. }
      63. }
      Alles anzeigen
      [/hide]
      [hide='esmtp']

      GML-Quellcode

      1. /*Versende E-Mails per ESMTP mit der 39dll
      2. Achtung es wird ESMTP mit der Authentifizierung Login verwendet und es gibt nur wenig Fehlerbehandlung.
      3. by henrik1235
      4. Argumente
      5. 0:Server
      6. 1:Port(Standart 25)
      7. 2:Name
      8. 3:Benutzername mit base64 kodiert
      9. 4:Passwort mit base64 kodiert
      10. 5:Von E-Mail
      11. 6:Für E-Mail
      12. 7:Betreff
      13. 8:Text
      14. Return:
      15. (Real) 1 wenn es gut ging
      16. (String)Fehler*/
      17. //Verbindung
      18. var server;
      19. server=tcpconnect(argument0,argument1,1);
      20. if (server<=0) { return "No connection"; }
      21. setformat(server,1,chr(10));
      22. //Versenden
      23. var step,size;
      24. step=0;
      25. size=0;
      26. while(1)
      27. {
      28. size=receivemessage(server);
      29. if (size==0) { return "Connection lost"; }
      30. if (size>0)
      31. {
      32. str=readchars(bytesleft());
      33. if (string_char_at(str,1)!="2") and (step!=2) and (step!=3) { return str; }
      34. switch(step)
      35. {
      36. case 0:
      37. clearbuffer(); writechars("EHLO "+argument2); sendmessage(server);
      38. break;
      39. case 1:
      40. clearbuffer(); writechars("AUTH LOGIN"); sendmessage(server);
      41. break;
      42. case 2:
      43. clearbuffer(); writechars(argument3); sendmessage(server);
      44. break;
      45. case 3:
      46. clearbuffer(); writechars(argument4); sendmessage(server);
      47. break;
      48. case 4:
      49. clearbuffer(); writechars("MAIL FROM:<"+argument5+">" ); sendmessage(server);
      50. break;
      51. case 5:
      52. clearbuffer(); writechars("RCPT TO:<"+argument6+">" ); sendmessage(server);
      53. break;
      54. case 6:
      55. clearbuffer(); writechars("DATA"); sendmessage(server);
      56. break;
      57. case 7:
      58. var str;
      59. str="From: <"+argument5+">"+chr(10);
      60. str+="To: <"+argument6+">"+chr(10);
      61. str+="Subject: "+argument7+chr(10);
      62. str+=chr(10)+argument8;
      63. str+=chr(10)+".";
      64. clearbuffer(); writechars(str); sendmessage(server);
      65. break;
      66. case 8:
      67. clearbuffer(); writechars("QUIT"); sendmessage(server); closesocket(server);
      68. return 1;
      69. break;
      70. }
      71. step+=1;
      72. }
      73. }
      Alles anzeigen
      [/hide]


      MfG henrik1235
      Ps.: Falls ihr es verwendet in irgendein Spiel, ist es euch überlassen mich zu nennen, ich meine es kann ja jeder selber machen so ein Skript wenn er Wikipedia liest. ^^
      wupto.net/ Nicht meine Seite!
      We love Koalas.

      GM-D-Spam-o-Meter: 32%

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von henrik1235 ()

    • Da meine Skripte keine Fehler Behandlung machen, bau ich vielleicht. noch ein. Liegt es daran das du dein Passwort+Benutzter Name nicht base64 kodiert ein gibst? Ich baue mal schnell eine Fehlerbehandlung ein.^^
      #edit: Fertig, eine sehr wenige Fehlerbehandlung
      wupto.net/ Nicht meine Seite!
      We love Koalas.

      GM-D-Spam-o-Meter: 32%

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von henrik1235 ()