Seite 1 von 2
tool zum versenden Datei über an E-MAil adresse ?
Verfasst: 17.03.2005 19:43
von Ice
Hi,
ich möchte ein Tool Programmieren mit dem ich mir per E-MAil automatisch eine bestimmte Datei zuschicken kann. Also wenn ich es starte wird die bestimmte Datei versendet.
Danke

Re: tool zum versenden Datei über an E-MAil adresse ?
Verfasst: 17.03.2005 19:44
von traumatic
Wie lautet Deine Frage?
Verfasst: 17.03.2005 19:47
von Ice
Na wie ich das machen kann oder ob mir einer das machen könnte wenn es nich so komliziert ist...
thx

Verfasst: 17.03.2005 19:50
von traumatic
So in der Art?
http://purearea.net/pb/CodeArchiv/Inter ... achment.pb
Achtung: Wird in der aktuellen PB-Version nicht mehr ohne Modifikationen funktionieren (AllocateMemory)
Verfasst: 17.03.2005 19:56
von Ice
hmm........ich kann da jetze nich soviel mit anfangen, ich bescheftige mich noch nicht so lange mit der Sprache
Kannst mir das bisschen erklären

Verfasst: 17.03.2005 21:15
von Ice
Würde das nich gehen ? :
Code: Alles auswählen
;Example linked list
NewList Attachments.s()
InsertElement(Attachments())
Attachments() = "C:\Documents And Settings\User\Desktop\Image.jpg"
Könnte ich ja die Datei angeben die ich vesrenden will.
Code: Alles auswählen
;Send the mail
Procedure PBSendMail(RecipientEmailAddress.s, SenderEmailAddress.s, MailServerHost.s, Subject.s, Message.s, AttachmentIncluded.b)
If InitNetwork()
ConnectionID = OpenNetworkConnection(MailServerHost, 25)
If ConnectionID <> 0
MailResponse()
If MailResponse = "220"
Index = FindString(MailServerHost, ".", 1)
MailServerDomain.s = Mid(MailServerHost, Index + 1, Len(MailServerHost))
SendMailData("HELO "+MailServerDomain+Chr(13)+Chr(10))
MailResponse()
If MailResponse="250"
Sleep_(125)
SendMailData("MAIL FROM: <"+SenderEmailAddress+">"+Chr(13)+Chr(10))
MailResponse()
If MailResponse="250"
SendMailData("RCPT TO: <"+RecipientEmailAddress+">"+Chr(13)+Chr(10))
MailResponse()
If MailResponse="250"
SendMailData("DATA"+Chr(13)+Chr(10))
MailResponse()
If MailResponse="354"
Sleep_(125)
SendMailData("X-Mailer: PBSendMail v1.0" + Chr(13) + Chr(10))
SendMailData("To: " + RecipientEmailAddress + Chr(13) + Chr(10))
SendMailData("From: " + SenderEmailAddress + Chr(13) + Chr(10))
SendMailData("Reply-To:" + SenderEmailAddress + Chr(13) + Chr(10))
SendMailData("Date: " + FormatDate("%dd/%mm/%yyyy @ %hh:%ii:%ss", Date()) + Chr(13) + Chr(10))
SendMailData("Subject: " + Subject + Chr(13) + Chr(10))
SendMailData("MIME-Version: 1.0" + Chr(13) + Chr(10))
;Handle any attachments
If AttachmentIncluded
Debug "Processing 'multipart/mixed' Email..."
Boundry.s = "PBSendMailv1.0_Boundry_"+ FormatDate("%dd%mm%yyyy%hh%ii%ss", Date())
SendMailData("Content-Type: multipart/mixed; boundary=" + Chr(34) + Boundry + Chr(13) + Chr(10) + Chr(34))
SendMailData(Chr(13) + Chr(10))
;Main message
Debug "Processing Messsage..."
SendMailData("--" + Boundry + Chr(13) + Chr(10)) ; Boundry
SendMailData("Content-Type: text/plain; charset=" + Chr(34) + "iso-8859-1" + Chr(34) + Chr(13) + Chr(10))
SendMailData("Content-Transfer-Encoding: 7bit" + Chr(13) + Chr(10))
SendMailData(Chr(13) + Chr(10))
Sleep_(125)
SendMailData(Message + Chr(13) + Chr(10))
SendMailData(Chr(13) + Chr(10))
Sleep_(125)
Debug "Processing Attachments..."
ResetList(Attachments())
While(NextElement(Attachments()))
;Attachment headers
SendMailData("--" + Boundry + Chr(13) + Chr(10)) ; Boundry
SendMailData("Content-Type: " + GetMIMEType(GetExtensionPart(Attachments())) + "; name=" + Chr(34) + GetFilePart(Attachments()) + Chr(34) + Chr(13) + Chr(10))
If IsBinary(Attachments())
SendMailData("Content-Transfer-Encoding: base64" + Chr(13) + Chr(10))
SendMailData("Content-Disposition: Attachment; filename=" + Chr(34) + GetFilePart(Attachments()) + Chr(34) + Chr(13) + Chr(10))
SendMailData(Chr(13) + Chr(10))
Sleep_(125)
;Encode the Attachments using Base64
If ReadFile(0, Attachments())
InputBufferLength.l = Lof()
If AllocateMemory(0, InputBufferLength, 0)
OutputBufferLength.l = InputBufferLength + InputBufferLength/3 + 2
If OutputBufferLength < 64 : OutputBufferLength = 64 : EndIf
If AllocateMemory(1, OutputBufferLength, 0)
ReadData(UseMemory(0), InputBufferLength)
Base64Encoder(UseMemory(0), InputBufferLength, UseMemory(1), OutputBufferLength)
SendMailData(PeekS(UseMemory(1), OutputBufferLength) + Chr(13) + Chr(10))
Debug GetFilePart(Attachments()) + " (base64) Encoded"
Else
Debug "ERROR: Unable to allocate memory for Bank 1 to process " + GetFilePart(Attachments())
ProcedureReturn 0
EndIf
Else
Debug "ERROR: Unable to allocate memory for Bank 0 to process " + GetFilePart(Attachments())
ProcedureReturn 0
EndIf
Else
Debug "ERROR: Unable to read file: " + GetFilePart(Attachments())
ProcedureReturn 0
EndIf
CloseFile(0) : FreeMemory(0) : FreeMemory(1)
Else
SendMailData("Content-Transfer-Encoding: 7bit" + Chr(13) + Chr(10))
SendMailData("Content-Disposition: Attachment; filename=" + Chr(34) + GetFilePart(Attachments()) + Chr(34) + Chr(13) + Chr(10))
SendMailData(Chr(13) + Chr(10))
Sleep_(125)
If ReadFile(0, Attachments())
InputBufferLength.l = Lof()
If AllocateMemory(0, InputBufferLength, 0)
ReadData(UseMemory(0), InputBufferLength)
SendMailData(PeekS(UseMemory(0), InputBufferLength) + Chr(13) + Chr(10))
Debug GetFilePart(Attachments()) + " (7bit) Processed"
Else
Debug "ERROR: Unable to allocate memory for Bank 0 to process " + GetFilePart(Attachments())
ProcedureReturn 0
EndIf
Else
Debug "ERROR: Unable to read file: " + GetFilePart(Attachments())
ProcedureReturn 0
EndIf
EndIf
Sleep_(125)
SendMailData(Chr(13) + Chr(10))
Wend
SendMailData("--" + Boundry + "--" + Chr(13) + Chr(10)) ; End Boundry
Else
Debug "Processing messsage..."
SendMailData("Content-Type: text/plain; charset=" + Chr(34) + "iso-8859-1" + Chr(34) + Chr(13) + Chr(10))
SendMailData("Content-Transfer-Encoding: 7bit" + Chr(13) + Chr(10))
SendMailData(Chr(13) + Chr(10))
Sleep_(125)
SendMailData(Message + Chr(13) + Chr(10))
EndIf
Sleep_(125)
SendMailData(Chr(13)+Chr(10))
SendMailData("."+Chr(13)+Chr(10))
MailResponse()
If MailResponse="250"
Sleep_(125)
SendMailData("QUIT"+Chr(13)+Chr(10))
MailResponse()
Debug "Mail sent successfully."
ProcedureReturn 1
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
CloseNetworkConnection(ConnectionID)
EndIf
EndIf
EndProcedure
;Testing:
PBSendMail("theirmail@server.com", "yourmail@server.com", "smtp.server.com", "Subject Line", "Lorem Ipsum Dolar Sit Amet...", 0)
; ExecutableFormat=Windows
; EOF
Könnte das zum Versenden der E-Mail sein.
Oder ?
Verfasst: 17.03.2005 22:53
von Kiffi
> Oder ?
genauso ist es.
Grüße ... Kiffi
P.S.: Bitte demnächst Code-Tags setzen
Verfasst: 17.03.2005 23:24
von traumatic
Also ich verstehe jetzt gar nichts mehr
EDIT: Mir fällt gerade noch Gnozals PureSMTP Library ein:
http://forums.purebasic.com/english/vie ... hp?t=12752
Ist wahrscheinlich der einfachste Weg.
Verfasst: 18.03.2005 10:38
von Kiffi
> Also ich verstehe jetzt gar nichts mehr
ganz einfach: Ice hat den von Dir empfohlenen Code gepostet und dann an
den für ihn relevanten Stellen gefragt, ob er hier Änderungen vornehmen
kann.
Grüße ... Kiffi
Verfasst: 18.03.2005 10:43
von traumatic
Kiffi hat geschrieben:Ice hat den von Dir empfohlenen Code gepostet und dann an
den für ihn relevanten Stellen gefragt, ob er hier Änderungen vornehmen
kann.
Ok, Danke für die Aufklärung!
(Der Code wird so aber trotzdem nicht funktionieren
)