Invio email

Moderator: Enrico Maria Giordano

Post Reply
User avatar
damianodec
Posts: 422
Joined: Wed Jun 06, 2007 2:58 pm
Location: Italia
Contact:

Invio email

Post by damianodec »

la mia esigenza è di inviare email da una lista di indirizzi in un file DB nottetempo, c'è qualcuno che può darmi qualche esempio?
User avatar
Enrico Maria Giordano
Posts: 8753
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Has thanked: 1 time
Been thanked: 4 times
Contact:

Re: Invio email

Post by Enrico Maria Giordano »

Io uso la SndMail.dll in questo modo:

Code: Select all | Expand

STATIC hLib


FUNCTION SENDMAIL( cFrom, cServer, cTo, cSubject, cMessage, aAttach, cSender, cUser, cPassword, aCc, lHtml, cPort )

    LOCAL cMsgFile := GETNEWFNAME()

    LOCAL cCmd := "SndMail -f " + cFrom + " -X " + cServer + " -r " + cTo + " -s " + ["] + cSubject + ["] + " -b " + cMsgFile

    LOCAL nRes

    LOCAL i

    DEFAULT lHtml := .F.

    MEMOWRIT( cMsgFile, cMessage + CRLF )

    IF !EMPTY( aAttach )
        FOR i = 1 TO LEN( aAttach )
            cCmd += " -a " + ["] + aAttach[ i ] + ["]
        NEXT
    ENDIF

    IF !EMPTY( cSender )
        cCmd += " -F " + ["] + cSender + ["]
    ENDIF

    IF !EMPTY( cUser )
        cCmd += " -h LOGIN -u " + cUser
    ENDIF

    IF !EMPTY( cPassword )
        cCmd += " -p " + cPassword
    ENDIF

    IF !EMPTY( aCc )
        FOR i = 1 TO LEN( aCc )
            cCmd += " -c " + ["] + aCc[ i ] + ["]
        NEXT
    ENDIF

    IF lHtml
        cCmd += " -H"
    ENDIF

    IF !EMPTY( cPort )
        cCmd += " -P " + cPort
    ENDIF

    hLib = LOADLIB32( "sndmail.dll" )

    SMTPLIBOPEN()

    nRes = SMTPSENDMAIL( cCmd )

    SMTPLIBCLOSE()

    FREELIB32( hLib )

    FERASE( cMsgFile )

    RETURN nRes = 0


DLL STATIC FUNCTION SMTPLIBOPEN() AS VOID;
    PASCAL FROM "USmtpLibOpen" LIB hLib

DLL STATIC FUNCTION SMTPSENDMAIL( cCmd AS STRING ) AS LONG;
    PASCAL FROM "USmtpCmdLineSendMail" LIB hLib

DLL STATIC FUNCTION SMTPLIBCLOSE() AS VOID;
    PASCAL FROM "USmtpLibClose" LIB hLib


EMG
User avatar
Massimo Linossi
Posts: 508
Joined: Mon Oct 17, 2005 10:38 am
Location: Italy

Post by Massimo Linossi »

Ciao EMG.
Due domande.
1. Dove si trova la dll che stai usando ?
2. C'è la possibilità di controllare se l'indirizzo email che vuoi usare esiste ?
Vorrei evitare che l'utente scriva un indirizzo che sintatticamente è giusto ma magari ha sbagliato a scrivere l'account e poi la mail viene persa oppure mi torna indietro con scritto che l'account non esiste.
Grazie mille e buona giornata.
Massimo.
User avatar
Enrico Maria Giordano
Posts: 8753
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Has thanked: 1 time
Been thanked: 4 times
Contact:

Post by Enrico Maria Giordano »

Massimo Linossi wrote:Ciao EMG.
Due domande.
1. Dove si trova la dll che stai usando ?


http://www.xmailserver.org/davide.html

Massimo Linossi wrote:2. C'è la possibilità di controllare se l'indirizzo email che vuoi usare esiste ?


No, e non ho mai visto nessun programma che lo faccia. Fino a prova contraria sono convinto che non si possa fare.

Aggiunta: ma sarei ben lieto di essere smentito. :-)

EMG
User avatar
Massimo Linossi
Posts: 508
Joined: Mon Oct 17, 2005 10:38 am
Location: Italy

Post by Massimo Linossi »

Grazie.
Hai ragione per il secondo punto, non credo sia una cosa semplice.
Ma ho visto che su parecchi siti, quando ti chiedono di validarti con un
indirizzo Email, controllano online se quell'indirizzo è corretto, senza spedirti
una mail. Chissà come fanno. Probabilmente usando qualche script che
sotto Internet funziona ma non è realizzabile da un programma fatto al
di fuori dei vari browser.
Prova questo indirizzo e vedi come funziona :
http://www.coveryourasp.com/ValidateEmail.asp#Result2
User avatar
Enrico Maria Giordano
Posts: 8753
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Has thanked: 1 time
Been thanked: 4 times
Contact:

Post by Enrico Maria Giordano »

Sì, ho visto. Non so se ne vale la pena.

EMG
Post Reply