| |
|
|
Erasmus.Herold | Hallo zusammen.
Immer wieder benutzt ich die Mail-Funktion in XProfan. So richtig zufrieden bin ich mit den Möglichkeiten nie gewesen. Aus diesem Grund habe ich eine Mail-Prozedur gebaut, die eine unbegrenzte Anzahl an Dateianhängen erlaubt.
Bei Aufruf werden Sender, Empfänger, Betreff und mehrzeiliger Text mitgegeben, dazu alle Dateianhänge (auch mit Pfad).
declare bereich#, len&, base64$
declare dateianhang_name$[], dateianhang_base64$[], z%, anzahl_anhaenge%
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// PROZEDUREN
PROC MAIL_MIT_ANHAENGEN
Parameters from$, to$, subject$, text$, attachment$
declare z%
z% = 1
anzahl_anhaenge% = 1
while (z% <= len(attachment$))
if (mid$(attachment$,z%,1) = "|")
INC anzahl_anhaenge%
endif
INC z%
endwhile
z% = 1
while (z% <= anzahl_anhaenge%)
dateianhang_name$[z%] = substr$(attachment$,z%,"|")
INC z%
endwhile
clearlist
// Beginn des Headers
addstring from$
addstring to$
addstring from$
addstring to$
addstring "Date: " + Date$(5)
addstring "Subject: " + subject$
addstring "Mime-Version: 1.0"
// boundary = die Verbindung zwischen Nachricht und Anhang
addstring "Content-Type: multipart/mixed; boundary=\q22334466\q"
addstring "--22334466"' Beginn der Nachricht
addstring "Content-Type: text/plain; charset=\qiso-8859-1\q"
addstring "Content-Transfer-Encoding: quoted-printable"
addstring ""
addstring text$
// ANHANG
z% = 1
while (z% <= anzahl_anhaenge%)
addstring "--22334466"
addstring "Content-Type: file/unknown; name=\q" + dateianhang_name$[z%] + "\q"
addstring "Content-Transfer-Encoding: base64"
addstring "Content-Disposition: attachment; filename=\q" + substr$(dateianhang_name$[z%],-1,"\") + "\q"
addstring ""
// Base64-String häppchenweise (je 72 Zeichen) anfügen
len& = FileSize(dateianhang_name$[z%])
Dim bereich#, len&
BlockRead(dateianhang_name$[z%], bereich#, 0, len&)
base64$ = encode64(char$(bereich#, 0, len&))
while len(base64$) > 72
addstring left$(base64$,72)
base64$ = del$(base64$,1,72)
endwhile
addstring base64$
'print "Dateiname: " + dateianhang_name$[z%]
'print "Base64: " + base64$
'print "Länge: " + str$(len&)
INC z%
endwhile
addstring ""
addstring "--22334466--"
ENDPROC
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// MAIL-VERSAND
// SYNTAX: MAIL_MIT_ANHAENGEN VON, AN, BETREFF, MAILTEXT_MIT_UMBRÜCHEN, DATEIANHÄNGE_MEHRERE_DURCH_PIPE_GETRENNT
MAIL_MIT_ANHAENGEN "absender@server.de", "empfänger@server.de", "Mail mit Anhängen", "Hallo ...\n\nHier kommt eine\nMail mit mehreren\nAnhängen.\n\nEnde ...", "Emoji Smiley-05.png|Emoji Smiley-04.png|Emoji Smiley-01.png"
print smtp("SendRaw", "mail-server.de", "", "")
end
Vielleicht ist es auch anderen hilfreich, mir vereinfacht es den Mail-Versand ab sofort sehr.
Gruß - Erasmus |
|
|
| |
|
|