Seite 1 von 2
Mail Versand per SMTP-Server
Verfasst: 29.07.2021 08:41
von Velindos
Hallo Leute,
wollte ein Mail per Anhang aus dem Programm versenden, geht aber nicht!
Code: Alles auswählen
; ------------------------------------------------------------
InitNetwork()
; ------------------------------------------------------------
; Seien Sie sicher, das richtige Login und Passwort zu verwenden.
; ------------------------------------------------------------
MailTo$ = "info@velindos.com"
; ------------------------------------------------------------
Benutzer$ = "MeinBenutzer@adress.comm"
Login$ = "MyPasswort"
Postausgangsserver$ = "smtp.ausgangsserver.com"
Port = 587
; ------------------------------------------------------------
; If CreateMail(0, Benutzer$, "Hello") => hier fehlt
If CreateMail(0, Benutzer$, "Hello",#PB_Ascii)
; ------------------------------------------------------------
SetMailBody(0, "Hello " + Chr(10) + "This is a mail !")
; ------------------------------------------------------------
AddMailAttachment(0, "MyAnhang", "D:\[Pure@API]\[STORE]\BMP\Arduino ButtonBild.bmp")
; ------------------------------------------------------------
AddMailRecipient(0, MailTo$ , #PB_Mail_To)
; ------------------------------------------------------------
Debug SendMail(0,Postausgangsserver$,Port, #PB_Mail_UseSSL, Benutzer$, Login$)
; ------------------------------------------------------------
EndIf
; ------------------------------------------------------------
Repeat
Debug MailProgress(0)
Delay(300)
Until MailProgress(0) = -3 Or MailProgress(0) = -2
; ------------------------------------------------------------
Kann jemand mir sagen was ich Falsch mache?
Gruss ... Velindos!
Re: Mail Versand per SMP-Server
Verfasst: 29.07.2021 11:42
von MenschMarkus
Hi,
versuche es erst einmal mit Port 25.
Deine Repeat Schleife dürfte ohne Funktion sein, da Sendmail nicht asynchron läuft. Da fehlt #PB_Mail_Asynchronous
Code: Alles auswählen
; ------------------------------------------------------------
Debug SendMail(0,Postausgangsserver$,Port, #PB_Mail_UseSSL | #PB_Mail_Asynchronous, Benutzer$, Login$)
; ------------------------------------------------------------
Re: Mail Versand per SMP-Server
Verfasst: 29.07.2021 12:16
von NicTheQuick
Kein anständiger SMTP-Server nutzt heutzutage noch Port 25, außer vielleicht wenn der Server localhost ist. Der Port ist unverschlüsselt und nicht zur Authentifizierung geeignet.
Ich vermute eher, dass du eigentlich StartTLS statt SSL benötigst, aber Purebasic scheint das nicht anzubieten. Welche Fehlermeldung bekommst du überhaupt? Das hast du leider nicht dazu geschrieben.
Re: Mail Versand per SMP-Server
Verfasst: 29.07.2021 13:00
von Velindos
Hallo Leute,
vorab besten DANK für eure Tips!
Mein Provider "smtp.world4you.com" bietet SMTP:25 und alternativ SMTP-Port(submission) 587 an.
Wenn ich die Sache über *.gmx anspreche verwende ich "mail.gmx.net" und 587!
Beides funzt nicht! Was heisst "StartTLS"?
Gruss ... Velindos!
Re: Mail Versand per SMP-Server
Verfasst: 29.07.2021 14:04
von HeX0R
Versuch mal Port 465
Re: Mail Versand per SMP-Server
Verfasst: 29.07.2021 15:35
von Velindos
Hallo,
habe 465 versucht, funzt nicht! Mal als Baustein!
Code: Alles auswählen
Procedure EmailMessage()
; ------------------------------------------------------------
Protected OutgoingMailId
; ------------------------------------------------------------
If InitNetwork() <> 0
; ------------------------------------------------------------
MailTo.s "info@velindos.com"
MailToSubject.s = "PureBasic 5.71 - TLS Authentication Test"
MailToBody.s = "Hier mal mit 465 oder 587 testen!"
; ------------------------------------------------------------
Benutzer$ = "MeinBenutzer@adress.comm"
Login$ = "MyPasswort"
Port = 587 ; Old port was 465/ 587
ServerName.s = "smtp.ausgangsserver.com"
; ------------------------------------------------------------
If ServerName.s And PortNumber.i And Benutzer$ And Login$ And Benutzer$
;
If MailTo.s And MailToSubject.s And MailToBody.s
;
OutgoingMailId.i = CreateMail(#PB_Any, Benutzer$, MailToSubject.s)
;
If OutgoingMailId.i
;
SetMailBody(OutgoingMailId.i, MailToBody.s)
;
AddMailAttachment(OutgoingMailId, "MyAnhang", "D:\[Pure@API]\[STORE]\BMP\Arduino ButtonBild.bmp")
AddMailRecipient(OutgoingMailId.i, MailTo.s, #PB_Mail_To)
;
If SendMail(OutgoingMailId.i, ServerName.s, PortNumber.i, #PB_Mail_Asynchronous | #PB_Mail_UseSSL, Benutzer$ , Login$)
;
Repeat
ProgressId.i = MailProgress(OutgoingMailId.i)
If ProgressId.i = #PB_Mail_Connected
Debug "Mit dem E-Mail-Server verbunden."
ElseIf ProgressId.i = #PB_Mail_Error
ErrorCounter.i + 1
Debug "Fehler beim Verbinden und Senden der Nachricht."
Else
Debug "Sent " + Str(ProgressId.i) + " bytes of this email."
EndIf
Delay(300)
Until ProgressId.i = #PB_Mail_Finished Or Progress.i = #PB_Mail_Error Or ErrorCounter.i = 20
;
If ProgressId.i = #PB_Mail_Finished
Debug "E-Mail Paket korrekt gesendet."
ElseIf ProgressId.i = #PB_Mail_Error
Debug "Das E-Mail-Paket konnte nicht gesendet werden."
EndIf
;
Else
Debug "Das Postpaket konnte nicht gesendet werden."
EndIf
;
Else
Debug "Das ausgehende E-Mail-Paket kann nicht erstellt werden."
EndIf
;
Else
Debug "Eine oder mehrere Angaben des Empfängers sind leer."
EndIf
;
Else
Debug "Eine oder mehrere der E-Mail-Server-Details sind leer."
EndIf
;
Else
Debug "Die Netzwerkumgebung zum Senden von E-Mails kann nicht initialisiert werden"
EndIf
; ------------------------------------------------------------
EndProcedure
EmailMessage()
Gruss ... Velindos!
Re: Mail Versand per SMP-Server
Verfasst: 29.07.2021 15:51
von NicTheQuick
StartTLS wird sehr häufig bei SMTP-Servern genutzt. Es bedeutet, dass die Verbindung zuerst unverschlüsselt beginnt, und dann einigen sich beide Seiten darauf auf Verschlüsselung umzustellen, bevor die Logindaten übertragen werden. Bei SSL/TLS ist die Verbindung schon von Beginn an verschlüsselt. Das nutzen aber die wenigsten Mailserver meiner Erfahrung nach. Bei IMAP wird hingegen eigentlich immer SSL/TLS benutzt, da hab ich auch noch kein StartTLS gesehen.
Ich fürchte Purebasic hat einfach mal wieder zu wenige Optionen, wie es oft der Fall ist.
Re: Mail Versand per SMP-Server
Verfasst: 29.07.2021 16:05
von Velindos
Hallo NicTheQuick!
Wenn ich das richtig Verstehe kann damit PB keine Verbindung erstellen!
Sieht ja auch so aus im Baustein!
Mit welchen Maildienst kann man eine Verbindung erstellen?
Also ich habe es versucht mit GMX, World4you, Gmail etc.!
Hatte bis Dato keinen Erfolg!
Gruss ... Velindos!
Re: Mail Versand per SMTP-Server
Verfasst: 30.07.2021 21:20
von HeX0R
Ich hab das
Beispiel in der Hilfe mal eben getestet (#PB_Mail_UseSSL eingefügt und Username/Passwort).
Sowohl GMX, als auch GMail funktionieren wunderbar, mit Port 465 allerdings, nicht mit 587.
World4you kenne ich nicht, interessiert mich auch nicht.
Bei Gmail musst Du natürlich die
2-Phasen Authorisierung deaktivieren, oder Du nutzt eins der sog. "
App-Passwörtern".
Re: Mail Versand per SMTP-Server
Verfasst: 31.07.2021 12:28
von mk-soft
Mit vergessen bei GoogleMail Online auch andere Programme zu erlauben.
Nicht zertifizierte Programme werden abgelehnt.