Invio di mail avanzato: permette l'invio di email in formato HTML e non, con allegati e parametri aggiuntivi.
Particolare attenzione và riservata all'encoding dei caratteri, si consiglia l'uso di UTF8. Vedi
strEncode/
strDecode.
Sintassi
INT ehMailToEx( EH_MAILTO * psMailTo,
EN_MAILSENDTYPE iType, // Se testo il messaggio viene preso in utf8
BYTE * putfEmailFrom,
BYTE * putfEmailReplyTo,
BYTE * putfEmailTo,
BYTE * putfEmailCC,
BYTE * putfEmailBCC,
INT iCharSetBody, // SE_UTF8 / SE_ISO_LATIN1
BYTE * putfSubject, // Sempre UTF8
CHAR * pszMessageBody, // Corpo del messaggio
CHAR * pszOtherSetting,
UTF8 * pszFilesAttach,
CHAR * pszTextMessageAlt // NULL > calcolato in automatico
)
Parametri
- psMailTo
Puntatore alla struttura di invio EH_MAILTO
- iType
Tipo di email
MIMEHTML_1
pszMessageOriginal contiene il codice html della email: verrà spedita email con html + testo in alternativa estratto dall'html.
TEXTPLAIN_1
pszMessageOriginal contiene il testo dell'email
- putfEmailFrom
email del mittente: Es info@ferra.com oppure info@ferra.com\1nome del mittente
- putfEmailReplyTo
email del mittente: Es info@ferra.com oppure info@ferra.com\1nome del mittente
- putfEmailTo
email del destinatario
- putfEmailCC (opzionale)
Può essere NULL
- putfEmailBCC (opzionale)
Può essere NULL
- iCharSetBody // iso-8859-1 / utf-8
Indica l'encoding del corpo del messaggio:
SE_UTF8: Lo standard più sicuro per avere l'esatta corrispondenza dei caratteri.
SE_ANSI: Usa lo standard Windows, facile da usare ma con dei limiti nell'uso dei caratteri.
SE_ISO_LATIN1: Lo standard per le pagine HTML (Es è = à) non permette l'uso di caratteri non ASCII (superiori a 127)
Nel caso di invio in formato MIMEHTML il messaggio non viene accettato nella forma SE_ANSI.
Nel caso di invio in formato testo il messaggio SE_ANSI viene convertito nella forma più pratico all'invio.
- putfSubject
Oggetto dell'email: la stringa deve essere sempre condificata in utf8.
- pszMessageBody
Corpo del messaggio.
- pszOtherSetting
Stringa contenente altri settaggi da usare nelle email separti da CRLF.
reply-to:
A chi inviare il rispondi
notify:
Email di richiesta ricevuta di ritorno
organization:
Nome della società che invia
- pszFilesAttach
Contiene il nome del file o dei files separati da pipe "|". Vedi specifiche in commenti.
- pszTextMessageAlt
Messaggo di testi alternativo da inviare in caso di email HTML.
Se NULL viene generato in automatico dalla funzione.
Valori di ritorno
Se l'invio è andato a buonfine ritorna 0, altrimenti il numero di errore visibilme con
ehMailError();
Commenti
INT iRet;
EH_MAILTO sMailTo;
CHAR * pszFrom="no-reply@ferra.it\1Ferra srl";
CHAR * pszTo="info@ferra.com";
CHAR * utfOggetto="Email di prova";
CHAR * pszMessaggio="Questo e' il messaggio di un email di prova";
ZeroFill(sMailTo);
sMailTo.iSize=sizeof(EH_MAILTO);
iRet=ehMailToEx( &sMailTo,
MIMEHTML_1,
pszFrom,
pszTo,
NULL,
NULL,
SE_UTF8,
utfOggetto,
pszMessaggio,
NULL,
"c:\\statgeneric.txt");
Allegati
Per inviare files allegati all'email è sufficiente indicare il nome del percorso completo separato da pipe nel parametro della funzione.
Es. "c:\test.txt|\documenti\esempio.pdf".
Se il file non esiste, non viene ritornato nessuno errore: semplicemente non viene allegato.
In caso contrario deve contenere una delle seguenti estensioni: pdf, doc, xls, txt, jpg, jpeg, png, gif.
Tutte le altre estensioni non vengono inviate creando un errore e fermando il programma.
Se si desidera inviare un tipo di file con estensione non gestita indicare il tipo dopo il nome usando come separatore il carattere ASCII 1:
Es, "Esempio.log\1text/plain".