FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Error con array en tsmtp
Posts: 428
Joined: Thu Oct 19, 2006 12:28 PM
Error con array en tsmtp
Posted: Thu Sep 11, 2008 10:36 AM
Hola amigos

Utilizando la funcion sendmail:
   oMail:SendMail( ;
      "micorreo@micorreo.com", ; // de
      { csender }, ;         // para (arreglo) 
      ( mensaje ),;          // Mensaje
      (asunto),;             // Asunto
      { fichero }, ;         // Arreglo de nombres de archivos a agregar
      { }, ;                 // aCC
      { }, ;                 // aBCC
      lReceipt, ;            // acuse de recibo
      cMsg )                 // mensaje en HTML


Si csender corresponde a una sola direccion de envío, funciona

Sin embargo si csender corresponde a un array con multiples direcciones de correo, no funciona, y me da el siguiene error:
Application
===========
Path and name: C:\fuentes\xharbour\GESPAQ08\gespaqn.Exe (32 bits)
Size: 1,018,880 bytes
Time from start: 0 hours 0 mins 20 secs
Error occurred at: 11/09/08, 12:24:25
Error description: Error BASE/1108 Argument error: AT
Args:
[ 1] = C <
[ 2] = A { ... }

Stack Calls
===========
Called from: => AT(0)
Called from: => CLEANEMAIL(659)
Called from: tsmtp.prg => TSMTP:ONREAD(270)
Called from: tsmtp.prg => (b)TSMTP:NEW(131)
Called from: tsocket.prg => (b)TSOCKET:TSOCKET(77)
Called from: tsocket.prg => TSOCKET:ONREAD(0)
Called from: tsocket.prg => TSOCKET:HANDLEEVENT(229)
Called from: tsocket.prg => (b)TSOCKET:NEW(121)
Called from: WINDOW.PRG => TMDIFRAME:ASYNCSELECT(0)
Called from: WINDOW.PRG => TMDIFRAME:HANDLEEVENT(0)
Called from: WINDOW.PRG => _FWH(0)
Called from: => WINRUN(0)
Called from: WINDOW.PRG => TMDIFRAME:ACTIVATE(0)
Called from: gespaqn.prg => MAIN(69)


Alguna idea?
--------------------------

Saludos



Jose Luis
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Error con array en tsmtp
Posted: Thu Sep 11, 2008 11:50 AM

Revisa bien el codigo en la funcion CleanMail(). El error esta en la linea 659, e indica el uso de dos datos contradictorios: Array vs Caracter.

Saludos.

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 428
Joined: Thu Oct 19, 2006 12:28 PM
Error con array en tsmtp
Posted: Thu Sep 11, 2008 12:23 PM
hola
El código forma parte de la tsmtp, y es:
// IBTC: Convert "Your Name <your@email.com>" into "your@email.com"
Static Function CleanEMail( cEMail )
Local nLeft, nRight
If ( nLeft := At( "<", cEMail ) ) > 0
   If ( nRight := At( ">", cEMail ) ) > 0
      cEMail := SubStr( cEMail, nLeft + 1, nRight - nLeft - 1 )
   Else
      cEMail := SubStr( cEMail, nLeft + 1 )
   Endif
Endif

Return AllTrim( cEMail )


Aqui me pierdo

Saludos
--------------------------

Saludos



Jose Luis
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Error con array en tsmtp
Posted: Thu Sep 11, 2008 01:31 PM

JoseLuis:
He probado la funcion y trabaja bien cuando el nombre del correo se introduce correctamente, pero si por error se introducen "<<", devuelve el mencionado mensaje de error.

Prueba a cambiar la function por esta que te envio. (le agregué un segundo chequeo y detecta lo anteriormente descrito)

Saludos

//-------------------------------------
Static Function CleanEMail( cEMail )
Local nLeft, nRight

If ( nLeft := At( "<", cEMail ) ) > 0
If ( nRight := At( ">", cEMail ) ) > 0
cEMail := SubStr( cEMail, nLeft + 1, nRight - nLeft - 1 )
Else
cEMail := SubStr( cEMail, nLeft + 1 )
Endif
Endif

//Doble chequeo
If ( nLeft := At( "<", cEMail ) ) > 0
cEMail := SubStr( cEMail, nLeft + 1 )
Endif

If ( nRight := At( ">", cEMail ) ) > 0
cEMail := SubStr( cEMail, nLeft, nRight - 1 )
Endif

Return AllTrim( cEMail )

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql

Continue the discussion