2010-11-18 12:49 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)

* contrib/hbtip/sendmail.prg
  * contrib/hbtip/mail.prg
    ! Fixed various ages-old bugs in recipient list handling.
    ; TOFIX: BEWARE to all users. BCC is NOT actually blind in this
             implementation. If someone has an idea how to fix this
             bug, pls shout.
This commit is contained in:
Viktor Szakats
2010-11-18 11:52:46 +00:00
parent 4aed30bd2b
commit ad6023bf2b
3 changed files with 41 additions and 19 deletions

View File

@@ -16,6 +16,14 @@
The license applies to all entries newer than 2009-04-28.
*/
2010-11-18 12:49 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbtip/sendmail.prg
* contrib/hbtip/mail.prg
! Fixed various ages-old bugs in recipient list handling.
; TOFIX: BEWARE to all users. BCC is NOT actually blind in this
implementation. If someone has an idea how to fix this
bug, pls shout.
2010-11-18 12:21 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/contrib/hbct/bitnum.c
! fixed && operator wrongly used instead of & in function NumMirr()

View File

@@ -560,10 +560,10 @@ METHOD setHeader( cSubject, cFrom, xTo, xCC, xBCC ) CLASS TipMail
cTo := ""
imax := Len( aTO )
FOR i := 1 TO imax
IF i > 1
cTo += LTrim( WordEncodeQ( tip_GetNameEMail( AllTrim( aTo[ i ] ) ), ::cCharset ) + " <" + tip_GetRawEMail( AllTrim( aTo[ i ] ) ) + ">" )
IF i < imax
cTo += "," + tip_CRLF() + " "
ENDIF
cTo += LTrim( WordEncodeQ( tip_GetNameEMail( AllTrim( aTo[ i ] ) ), ::cCharset ) + " <" + tip_GetRawEMail( AllTrim( aTo[ i ] ) ) + ">" )
NEXT
IF Empty( cTo )
@@ -578,10 +578,10 @@ METHOD setHeader( cSubject, cFrom, xTo, xCC, xBCC ) CLASS TipMail
cCC := ""
imax := Len( aCC )
FOR i := 2 TO imax
IF i > 1
cCC += LTrim( WordEncodeQ( tip_GetNameEMail( AllTrim( aCC[ i ] ) ), ::cCharset ) + " <" + tip_GetRawEMail( AllTrim( aCC[ i ] ) ) + ">" )
IF i < imax
cCC += "," + tip_CRLF() + " "
ENDIF
cCC += LTrim( WordEncodeQ( tip_GetNameEMail( AllTrim( aCC[ i ] ) ), ::cCharset ) + " <" + tip_GetRawEMail( AllTrim( aCC[ i ] ) ) + ">" )
NEXT
IF ! Empty( cCC ) .AND. ! ::setFieldPart( "Cc", cCC )
@@ -593,10 +593,10 @@ METHOD setHeader( cSubject, cFrom, xTo, xCC, xBCC ) CLASS TipMail
cBCC := ""
imax := Len( aBCC )
FOR i := 2 TO imax
IF i > 1
cBCC += LTrim( WordEncodeQ( tip_GetNameEMail( AllTrim( aBCC[ i ] ) ), ::cCharset ) + " <" + tip_GetRawEMail( AllTrim( aBCC[ i ] ) ) + ">" )
IF i < imax
cBCC += "," + tip_CRLF() + " "
ENDIF
cBCC += LTrim( WordEncodeQ( tip_GetNameEMail( AllTrim( aBCC[ i ] ) ), ::cCharset ) + " <" + tip_GetRawEMail( AllTrim( aBCC[ i ] ) ) + ">" )
NEXT
IF ! Empty( cBCC ) .AND. ! ::setFieldPart( "Bcc", cBCC )

View File

@@ -95,10 +95,11 @@ FUNCTION hb_SendMail( cServer, nPort, cFrom, xTo, xCC, xBCC, cBody, cSubject, ;
LOCAL cData
LOCAL oUrl1
LOCAL cTmp := ""
LOCAL cTo := ""
LOCAL cCC := ""
LOCAL cBCC := ""
LOCAL cTmp
LOCAL cTo
LOCAL cCC
LOCAL cBCC
LOCAL tmp
LOCAL lConnectPlain := .F.
LOCAL lReturn := .T.
@@ -168,12 +169,17 @@ FUNCTION hb_SendMail( cServer, nPort, cFrom, xTo, xCC, xBCC, cBody, cSubject, ;
// cTo
IF ISARRAY( xTo )
FOR tmp := Len( xTo ) TO 1 STEP -1
IF Empty( xTo[ tmp ] )
hb_ADel( xTo, tmp, .T. )
ENDIF
NEXT
cTo := ""
cTmp := ""
IF Len( xTo ) > 1
FOR EACH cTo IN xTo
IF cTo:__enumIndex() != 1
IF ! Empty( cTo )
cTmp += tip_GetRawEMail( AllTrim( cTo ) ) + ","
ENDIF
cTmp += tip_GetRawEMail( AllTrim( cTo ) ) + ","
ENDIF
NEXT
cTmp := SubStr( cTmp, 1, Len( cTmp ) - 1 )
@@ -189,11 +195,15 @@ FUNCTION hb_SendMail( cServer, nPort, cFrom, xTo, xCC, xBCC, cBody, cSubject, ;
// CC (Carbon Copy)
IF ISARRAY( xCC )
FOR tmp := Len( xCC ) TO 1 STEP -1
IF Empty( xCC[ tmp ] )
hb_ADel( xCC, tmp, .T. )
ENDIF
NEXT
cCC := ""
IF Len( xCC ) > 0
FOR EACH cTmp IN xCC
IF ! Empty( cTmp )
cCC += tip_GetRawEMail( AllTrim( cTmp ) ) + ","
ENDIF
cCC += tip_GetRawEMail( AllTrim( cTmp ) ) + ","
NEXT
cCC := SubStr( cCC, 1, Len( cCC ) - 1 )
ENDIF
@@ -204,11 +214,15 @@ FUNCTION hb_SendMail( cServer, nPort, cFrom, xTo, xCC, xBCC, cBody, cSubject, ;
// BCC (Blind Carbon Copy)
IF ISARRAY( xBCC )
FOR tmp := Len( xBCC ) TO 1 STEP -1
IF Empty( xBCC[ tmp ] )
hb_ADel( xBCC, tmp, .T. )
ENDIF
NEXT
cBCC := ""
IF Len( xBCC ) > 0
FOR EACH cTmp IN xBCC
IF ! Empty( cTmp )
cBCC += tip_GetRawEMail( AllTrim( cTmp ) ) + ","
ENDIF
cBCC += tip_GetRawEMail( AllTrim( cTmp ) ) + ","
NEXT
cBCC := SubStr( cBCC, 1, Len( cBCC ) - 1 )
ENDIF