1. Simone Olianti
  2. PowerBuilder
  3. Tuesday, 24 October 2023 14:19 PM UTC

Hello, i'm using the new SMTPClient and it's working good but i've noticed a strange behaviour when i look at the sent email

Even if I add only one recipient  and only one attachment to the message, the recipient always gets multiple sender references and multiple attachments repeated more than once.
I've tried to reset the mime message but nothing changed.
The Message.AddRecipient always returns an index value of 3 but i'm setting only one recipient to the message.

Another issue i've experiencing is that if i use the "AddBcc" function the send returns always -7.  if i use "AddCc" it works, but again it returns always an index of 3 even if i add only one.

I'm using PB 2022 R2 (build 2819) with the latest PB Hotfix.

Any ideas?
TIA,
     simone

 

Example:

    SMTPClient  lnv_SmtpClient
    lnv_SmtpClient = CREATE SMTPClient
    
    //set the email account information     
    lnv_SmtpClient.Host = 'xxxx'
    lnv_SmtpClient.Port = 587
    lnv_SmtpClient.Username = 'xxx'
    lnv_SmtpClient.password = 'xxxx'
    lnv_SmtpClient.EnableTLS = True
    
    //set the email message
    lnv_SmtpClient.message.reset( 0 )
    lnv_SmtpClient.Message.SetSender(vLS_from, vLS_fromname)
    lnv_SmtpClient.Message.encoding = 'windows-1252'
    
    For vLI_idx = 1 To upperbound(vLS_toemail)
       lnv_SmtpClient.Message.AddRecipient(vLS_toemail[vLI_idx], vLS_toname[vLI_idx])        
    Next
    
    For vLI_idx = 1 To upperbound(vLS_ccemail)
        lnv_SmtpClient.Message.addcc(vLS_ccemail[vLI_idx], vLS_ccname[vLI_idx])        
    Next    
    
    For vLI_idx = 1 To upperbound(vLS_bccemail)
        lnv_SmtpClient.Message.addbcc(vLS_bccemail[vLI_idx], vLS_bccname[vLI_idx])                            
    Next        
    
    // build attachment list
    vLI_max = upperbound(vLS_attachment)
    For vLI_idx = 1 To vLI_max
        vLS_filename =vLS_attachment[vLI_idx]    
        lnv_SmtpClient.Message.AddAttachment(vLS_filename)        
    Next        
    
    lnv_SmtpClient.Message.Subject = ls_subject
    lnv_SmtpClient.Message.TextBody = ls_body
    lnv_SmtpClient.message.Priority = 0
        
    lnv_SmtpClient.Timeout = 10
    lnv_SmtpClient.LogFile(ls_logfile, false)
    
    //send the email message
    li_rc = lnv_SmtpClient.Send()
    
    IF li_rc = 1 THEN
        MessageBox("SMTPClient", "EMail Inviata Correttamente.")
    ELSE
        choose case li_rc        
            case -1
                ls_errmsg = "A general error occurred."
            case -2
                ls_errmsg = "Unable to connect to service through proxy."        
            case -3
                ls_errmsg = "The given proxy host could not be resolved."        
            case -4
                ls_errmsg = "The given remote host could not be resolved."    
            case -5
                ls_errmsg = "Failed to connect to host."        
            case -6
                ls_errmsg = "Host is of bad/illegal format or is missing."        
            case -7
                ls_errmsg = "Protocol is not supported."        
            case -8
                ls_errmsg = "Error in SSL connection."        
            case -9
                ls_errmsg = "Server certificate is revoked."        
            case -10
                ls_errmsg = " Service certificate authentication failed."        
            case -11
                ls_errmsg = "Operation timeout."        
            case -12
                ls_errmsg = "The remote server denied curl to login."        
            case -13
                ls_errmsg = "Failed sending network data."        
            case -14
                 ls_errmsg = "Failure in receiving network data."        
            case -15
                ls_errmsg = "Incorrect username or password."        
            case -16
                ls_errmsg = "Error reading local file."        
            case -17
                ls_errmsg = "No sender has been specified."        
            case -18
                ls_errmsg = "No recipients have been specified."
        end choose
         MessageBox("SMTPClient Error", String(li_rc) + ' - ' + ls_errmsg, stopsign!, ok!)
    END IF
    DESTROY lnv_SmtpClient           

Attachments (1)
Accepted Answer
Ken Guo @Appeon Accepted Answer Pending Moderation
  1. Monday, 30 October 2023 09:12 AM UTC
  2. PowerBuilder
  3. # Permalink

Hi Simone,

I did not reproduce the return value problems of the three functions of Addrecipient, AddCc, and AddBcc that you reported. See if you can reboot the machine or try another machine to see if it works.

About the problem of the AddBcc function causing the send function to return -7, this is a Bug and we will fix it.
The current workaround is to use the AddBcc function without specifying the name argument, for example:
Change:
lnv_SmtpClient.Message.AddBcc("tester@test.net","test")
To:
lnv_SmtpClient.Message.AddBcc("tester@test.net")

Regards,
Ken

Comment
  1. Simone Olianti
  2. Monday, 30 October 2023 09:24 AM UTC
thank you Ken!
  1. Helpful
There are no comments made yet.
Andreas Mykonios Accepted Answer Pending Moderation
  1. Wednesday, 25 October 2023 08:51 AM UTC
  2. PowerBuilder
  3. # 1

Hi.

I did the following test. I placed on a window a button with following code:

integer li_i
smtpclient lnv_smtpclient

try 
	lnv_smtpclient = create smtpclient
	
	lnv_smtpclient.host = "smtp.test.com"
	lnv_smtpclient.port = 25
	lnv_smtpclient.enabletls = true
	lnv_smtpclient.username = "test@test.com"
	lnv_smtpclient.password = "test123test"
	
	lnv_smtpclient.message.setsender("Me@test.gr", "Me")
	lnv_smtpclient.message.addrecipient("You@test.gr", "You")
	
	for li_i = 1 to 5
		messagebox("", lnv_smtpclient.message.addcc("cctest" + string(li_i) + "@test.gr", "CC Test" + string(li_i)))
	next
	
	for li_i = 1 to 3
		messagebox("", lnv_smtpclient.message.addbcc("bcctest" + string(li_i) + "@test.gr", "BCC Test" + string(li_i)))
	next
	
	lnv_smtpclient.message.reset(0)
	
	lnv_smtpclient.message.subject = "PB Test Mail."
	lnv_smtpclient.message.textbody = "This is a test email from PowerBuilder."
	
catch (throwable exc1)
	messagebox("", exc1.text)
finally
	if isvalid(lnv_smtpclient) then destroy lnv_smtpclient
end try

For me, the messagebox shows 1-5 for each addcc command I execute and 1-3 for each addbcc. This happens whenever I press the commandbutton. So I don't see the problem you have with addcc and addbcc result.

I do have a pb 2022 r2 hotfix installed in my computer, but I'm not sure if it's the same you do have. Date and size for pbvm.dll (which is one of many files included in the hotfix I applied) are: 05 September 2023 and 9.072.336 Bytes.

I don't send the email. I'm just testing how the information is added to mimemessage object.

Andreas.

Comment
  1. Simone Olianti
  2. Wednesday, 25 October 2023 09:11 AM UTC
Hi Andreas, in my environment i've replaced the "for" with a "do while" and now the return indexes of addrecipient, addcc and addattachment are fine.

Honestly i'm not sure why, anyway the first issue is now solved. The AddBcc issue persists but i get the error only when i send the email. The send function always returns -7 if it finds a bcc recipient. The cc working fine
  1. Helpful
There are no comments made yet.
Simone Olianti Accepted Answer Pending Moderation
  1. Wednesday, 25 October 2023 07:34 AM UTC
  2. PowerBuilder
  3. # 2

Update:

the strangest part is that if I replace the "for" with a "do while" everything working fine using the same arrays..

However, the AddBcc problem remains

Comment
There are no comments made yet.
Simone Olianti Accepted Answer Pending Moderation
  1. Tuesday, 24 October 2023 14:50 PM UTC
  2. PowerBuilder
  3. # 3

Could it be something relating to the latest PowerBuilder_Hotfix?

  • (Bug ID: 10785) SMTPClient always requires username and password.

'Cos i'm quite sure it was working fine before...

Comment
There are no comments made yet.
Andreas Mykonios Accepted Answer Pending Moderation
  1. Tuesday, 24 October 2023 14:42 PM UTC
  2. PowerBuilder
  3. # 4

Hi.

What does lnv_SmtpClient.message.reset(0) returns?

Andreas.

Comment
  1. Simone Olianti
  2. Tuesday, 24 October 2023 14:46 PM UTC
it returns 1
  1. Helpful
  1. Andreas Mykonios
  2. Tuesday, 24 October 2023 14:59 PM UTC
Your arrays are ok? Is there any chance this issue comes from an array that for some reason have duplicate values?

Andreas.
  1. Helpful
  1. Simone Olianti
  2. Tuesday, 24 October 2023 15:12 PM UTC
arrays are ok, i've even tried to send direct without using arrays and getting same issue
  1. Helpful
There are no comments made yet.
  • Page :
  • 1


There are no replies made for this question yet.
However, you are not allowed to reply to this question.