PureBoard
http://forums.purebasic.com/german/

PB.Ex Mail (Windows)
http://forums.purebasic.com/german/viewtopic.php?f=11&t=31435
Seite 10 von 10

Autor:  dige [ 11.07.2019 14:15 ]
Betreff des Beitrags:  Re: PB.Ex Mail (Windows)

Mmmh, SendMailEx() crasht wenn ich für CC oder BCC eine strukturierte Variable verwende. Mit "" statt Variable gehts :|

Ich versuch das mal zu isolieren..

Autor:  dige [ 11.07.2019 14:25 ]
Betreff des Beitrags:  Re: PB.Ex Mail (Windows)

Code:
Structure _NLSettingsCGI
  MAILGATE.s
  PORT.i
  SSL.i
  USER.s
  PWD.s
  SENDERNAME.s
  SENDEREMAIL.s
  REPORTEMAIL.s
  CGIPATH.s
  DOCPATH.s
  OpenMailExID.i
EndStructure
Structure SendEmail_Parameter
  Sender_Name.s                ; Name of Sender
  Sender_Email.s               ; Address of Sender
  RecipientTO.s                ; List of Recipient Addresses (';' separated)
  RecipientCC.s                ; List of Carbon-Copy-Recipient Adresses (';' separated)
  RecipientBCC.s               ; List of Blind-Carbon-Copy-Recipient Adresses (';' separated)
  ReplyTO.s                    ; Antwort abweichend vom Sender
  Undisclosed.b                ; if TRUE all recipients are hidden in the email
  UserName.s                   ; Username for Authentication
  Password.s                   ; Password for Authentication
  SMTPServer.s                 ; Address of SMTP Server
  port.w                       ; Port of SMTP Server
  Subject.s                    ; Subject of Email (nur ASCII zulässig)
  message.s                    ; Text-Body
  MessageHtml.s                ; HTML-Body
  ContentType.s                ; text/plain; charset=utf-8
  Hostname.s                   ; Hostname used for HELO/EHLO introduction
  ProgressAttachedFile.l       ; Address of Callback procedure for attached files
  Protocol_Enable.b            ; if Protocol should be written or not
  Protocol.s                   ; Protocol
  TimeOut.l                    ; Timeout Value in Seconds
  List Attachments.s()         ; List of Attachments
EndStructure


Procedure SendEMail (*mpara.SendEmail_Parameter, *MailSet._NLSettingsCGI)
  Protected ErrorOutput$, Attachment.s, Sender.s
 
  *MailSet\OpenMailExID = 1
  *MailSet\MAILGATE = "192.168.150.219"
  *MailSet\PORT = 25
  *MailSet\USER = ""
  *MailSet\PWD = ""
  *MailSet\SSL = 0
 
  *mpara\Subject = "Test"
  *mpara\MessageHtml = "<h1>It works</h1>"
  Sender = "x@y.z"
  *mpara\RecipientTO = "a@b.c"
 
  Debug "OpenMailEx().."
  OpenMailEx(*MailSet\OpenMailExID, #PBEx_Mail_Protocol_SMTP, *MailSet\MAILGATE, *MailSet\PORT, *MailSet\USER, *MailSet\PWD, *MailSet\SSL, @ErrorOutput$)
  Debug "Error: " + ErrorOutput$
 
  Debug "SendMailEx().."
  SendMailEx(*MailSet\OpenMailExID, *mpara\Subject, *mpara\MessageHtml, #PBEx_Mail_Priority_Normal, Sender, *mpara\RecipientTO,  *mpara\RecipientCC,  *mpara\RecipientBCC, Attachment, @ErrorOutput$)
  Debug "Error: " + ErrorOutput$
 
EndProcedure
Define time.i = ElapsedMilliseconds()

Define mpara.SendEmail_Parameter, MailSet._NLSettingsCGI

SendEMail(mpara, MailSet)


PB 5.70 x86, Windows 10

SendMailEx() crasht..

Autor:  RSBasic [ 11.07.2019 15:54 ]
Betreff des Beitrags:  Re: PB.Ex Mail (Windows)

PB.Ex Mail 1.1.3.0 wurde veröffentlicht.

Changelog:
  • Hinzugefügt: SendMailEx(): Aliasse bei Anhängen werden unterstützt. Beispiel: OriginalDatei.zip<AliasDatei.zip>
  • Bugfix: Alle übergebenen Strings werden jetzt auf NULL überprüft.

@dige
Du versuchst *mpara\RecipientCC ohne Inhalt zu übergeben.
Wenn du einen String in PB ohne "" definierst, dann ist der String immer NULL. Du musst mindestens mit "" definieren, dann gibt es auch kein Crash.
Aber ich habe jetzt in allen Methoden bei jeder String-Parameterübergabe eine Abfrage (string.IsNullOrEmpty()) eingebaut, bevor der jeweilige übergebene String verwendet wird.

Autor:  RalfP [ 25.08.2019 18:05 ]
Betreff des Beitrags:  Re: PB.Ex Mail (Windows)

@ RSBasic:
Vielen Dank dafür, dass Du uns deine nützliche DLL zur Verfügung stellst.

Ich habe einige IMAP-Funktionen mit der x64-DLL getestet. Dabei ist mir folgendes aufgefallen:

1.) Beim Löschen der Mails mit DeleteMailEx() bekomme ich den Rückgabewert 1, aber die Mails werden nicht gelöscht. Das habe ich bei verschiedenen Providern getestet.

2.) IsMailEx()
Fall 1: Die Verbindung wurde nicht mit OpenMailEx() aufgebaut, stattdessen wurde einfach die Funktion IsMailEx() mit einer fiktiven ID aufgerufen: Es stürzt dann das ganze Programm ab. IsMailEx() kann also nur 1 zurückgeben. Schade, ich hatte gedacht, die Funktion ist kugelsicher.
Fall 2: Die Verbindung wurde mit OpenMailEx() aufgebaut, dann jedoch der Netzwerkstecker am PC gezogen:
IsMailEx() gab weiterhin 1 zurück.

Seite 10 von 10 Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/