Code: Select all
#include "hbcurl.ch"
#require "hbtip"
#require "hbssl"
PUBLIC cApiUrl := "https://mandrillapp.com/api/1.0" // API_URL
PUBLIC cAPIKey := "somekey-d4590fdi90fdg80435rttt" // API_KEY
PUBLIC cFromEmail := "someome@website.com" // MAN_FRMAIL
PUBLIC cFromName := "Some One" // MAN_FRNAME
PUBLIC HTML_TEXT := 'HTML' // MAN_HT_TXT
PUBLIC h, curlHandle, i, haTO, haTO_1, aTO, ahResp
// now begin sending
curlHandle := curl_easy_init()
IF EMPTY(curlHandle)
Write_Trace('Error while init cURL lib ' )
MsgStop("Error while init cURL lib.")
QUIT
RETURN
ENDIF
// loop or something
cID := Send_Mandrill(cTo2, cSubject, cHTML_XX, '' )
IF cID # "!ERROR!"
? 'error'
ENDIF
//endloop
curl_global_cleanup( curlHandle )
RETURN
FUNCTION Send_Mandrill(xTO, xSubject, xHtmlMess, xTextMess)
/**********************************************************/
LOCAL cURL, aTO, i, h, cFromEmail, cSubject, cFromName
? 'Send_Mandrill : Prepare for send message'
cURL := cApiUrl + "/messages/send.json"
? 'cURL', cURL
IF cMAN_HT_TXT == 'HTML'
cTextMess := ""
cHtmlMess := xHtmlMess
ELSE
cTextMess := xTextMess
cHtmlMess := ''
ENDIF
cSubject := xSubject
cFromEmail := cMAN_FRMAIL
cFromName := cMAN_FRNAME
aTO := {}
AADD(aTO, {xTO, xTO })
// add cc or bcc
haTO := {}
FOR i = 1 TO LEN( aTO )
haTO_1 := { => }
haTO_1 [ "email" ] := aTO [i] [1]
haTO_1 [ "name" ] := aTO [i] [2]
AADD (haTO , haTO_1)
NEXT i
cHtmlMess := hb_StrDecodEscape( cHtmlMess )
h := { => }
h [ "key" ] := cAPIKey
h [ "message" ] := { "html" => hb_StrToUtf8( cHtmlMess, "FRWIN"), ;
"subject" => hb_StrToUtf8( cSubject , "FRWIN"), ;
"from_email" => cFromEmail, ;
"auto_text" => .F. , ;
"auto_html" => .T. , ;
"from_name" => cFromName, ;
"to" => haTO ,;
"headers" => {"Reply-To" => cFromEmail} }
h [ "async" ] := .F.
h [ "ip_pool"] := "Main Pool"
cPOSTdata := hb_jsonEncode( h , .T. )
cResp := SendMandrill( cUrl, cPOSTdata, curlHandle )
IF cResp = "!ERROR!"
cID := "!ERROR!"
Write_Trace( 'Report errors ', cResp )
ELSE
hb_jsonDecode( cResp , @ahResp)
Write_Trace( 'ahResp' , ahResp )
Write_Trace( 'cResp ', cResp )
FOR i := 1 TO LEN( ahResp )
cID := hb_HGet( ahResp [i] , "_id" )
NEXT
ENDIF
RETURN cID
Hope this can help.....
Serge