Newsgroup: it.comp.lang.vo-clipper
Titolo: Invio e-mail con ca.vo 2.7b

Qualcuno sa come procedere, magari con un piccolo esempio ad inviare e-mail 
con codice compilato in ca.vo 2.7b, visto che gli esempi recuperati e/o 
pubblicati non funzionano affatto !!
Grazie per le dritte e un gran buon meeting a chi vi partecipa.  Sigh
Mario Summa 

 ha scritto nel messaggio 
news:ejv572$e84$1...@fata.cs.interbusiness.it...


 ha scritto nel messaggio 
news:ejv572$e84$1...@fata.cs.interbusiness.it...


 ha scritto nel messaggio 
news:ejv572$e84$1...@fata.cs.interbusiness.it...


// Questo ti scarica la posta grazie all'esempio che c'č in vo con la nuova 
libreria di Geoff
oPop := MyPop{SELF, "
pop.tuopop.it
"}
 IF oPop:Logon("
t...@indirizzo.it
","tuapassword")
   oPop:GetStatus()
   // construct an array of mail numbers
   oProgWin:SubTitle := "Ottenuta la lista dei messaggi..."
   nList := oPop:MailCount // aHeaders = {...{Mail No., Mail size}...}
   oProgWin:BarTotal := nList
   FOR nMail := 1 UPTO nList
    oProgWin:UpDateBar(1)
    oProgWin:SubTitle := "Caricamento " + NTrim(nMail) + " di " + 
NTrim(nList)
    aRet := oPop:GetMailInfo(nMail)
    Oggetttoo := Upper(AllTrim(aRet[ncSubject]))
    *ErrorBox{SELF, Oggetttoo}:Show(ShowCentered)
    IF oPop:GetMail(nMail)
       nMailTrovate++
       oEmail := oPop:Email
       cText := oEmail:cText
       aFiles := oEmail:aAttachmentNames
       IF ALen(aFiles) >= 1
         IF !oEmail:SaveAttachment( PercorsoDbf + "MailRicevute\",aFiles[1], 
1 , TRUE)
          cNote := "Salvataggio non eseguito! Riprovare in seguito. " + 
oEmail:ErrorMsg
          SELF:ErroreChiudi(cNote)
          RETURN NIL
         END IF
        ENDIF
       nRec := 
SELF:SalvaRecordMail(aFiles[1],oEmail:FromName,oEmail:FromAddress, 
oEmail:MailDate)
       oPop:DeleteMail(nMail) // Puoi cancellarla oppure puoi tenerla sul 
server
       cTitle := "Caricamento completato"
       cMessage := "Salvataggio eseguito con successo"
      ELSE
       cNote := "Non sono riuscito a salvare il messaggio! Riprovare."
       SELF:ErroreChiudi(cNote)
       RETURN NIL
     ENDIF
    ENDIF
   NEXT
   IF nMailTrovate = 0
    cTitle := "Caricamento completato"
    cMessage := "Non ci sono mail"
   ENDIF
  ELSE
   cTitle := "Caricamento fallito"
   cMessage := "Fallito l'accesso al server - Riprovare " + oPop:ErrorMsg
 ENDIF
 oPop:Disconnect()
 oPop:Close()
// Questo ti manda i messaggi
oEmail := CEmail{""} // get a raw, empty email
 oEmail:FromAddress := DEF_INDIRIZZO
 oEmail:FromName := "tuo nome"
 oEmail:ReplyTo := DEF_INDIRIZZO
 oEmail:cDestList := 
t...@destinatario.it
 oEmail:Subject := cSubject
 oEmail:Cargo := "X-Mailer: SMTP Mail Client - "
 *oEmail:AttachmentFileList := NomeFile
 oEmail:EncodeAttachment(NomeFile)
 // Build text from file
 oEmail:cText := "testo nella mail"
 ApplicationExec(ExecWhileEvent)
 oEmail:EncodeEmail()  // encode up the new "raw" part
  //2. The mail is ready. Prepare the connection.
  oSmtp := MySmtp{SELF, oEMail, DEF_SERVERPOPUSCITA}
  oSmtp:Timeout := 5000
 lRetValue := oSmtp:connect(DEF_SERVERPOPUSCITA)
 oSmtp:Disconnect()
 oSmtp:CheckReply()
 IF !lRetValue
  ErrorBox{SELF,"Errore, connessione al server non riuscita " + 
oSmtp:ReplyString}:Show(ShowCentered)
  oSmtp:Disconnect()
   oSmtp := Null_Object
   oCEmail := Null_Object
  RETURN NIL
 ENDIF
  oSmtp:SecureSMTP := DEF_AUTENTICAZIONE_SICURA // .T. OR .F.
 oSmtp:UserName := DEF_UTENTESERVER
 oSmtp:PassWord := DEF_PASSWORDSERVER
 ApplicationExec(ExecWhileEvent)
 oSmtp:Timeout := 2500
 lRet := oSmtp:SendMail()
 //4. turn everything off
 MessaggeError := oSmtp:ReplyString
  oSmtp:Disconnect()
  oSmtp := Null_Object
  oCEmail := Null_Object
 *CollectForced()
  //3. send the mail
 IF !lRet
  ErrorBox{SELF, "Errore " + MessaggeError + " Dominio di invio non 
disponibile!"}:Show(ShowCentered)
 ENDIF
//Fine
Eccoti il tutto per lavorare con le mail. Ricordati di scaricarti l'ultima 
versione del internet sdk fatto da Geoff.
Ciao
Massimo Friargiu 

> oPop := MyPop{SELF, "
pop.tuopop.it
"}
Dimenticavo la classe MyPop l'ho presa sempre dall'esempio e serve 
semplicemente per la finestra di avanzamento delle mail più alcuni messaggi 
di stato da mettere nella tua finestra.
Ciao 

Eccoti la Funzione che uso Io.
FUNCTION InviaEmail(A AS USUAL,CC AS USUAL,BCC AS USUAL,OGGETTO AS
STRING,CORPO AS STRING,DaEmail AS STRING,DaNome,Allegati AS USUAL,Host
AS STRING,Conferma AS LOGIC)
  LOCAL oEMail        AS CeMail
  LOCAL oSMtP         AS cSMTP
  LOCAL lRet    AS LOGIC
  LOCAL uTo    AS ARRAY
  LOCAL i    AS WORD
  LOCAL nsep
  IF !Empty(a)
	IF ValType(A)="A"
		FOR x:=1 TO ALen(A)
		  IF At("@",A[x])=0
  				A[x]:=A[x]+'@MioDom.it'
		  ENDIF
		NEXT x
	ELSE
	  IF At("@",A)=0
  			A:=A+'@MioDom.it'
	  ENDIF
	ENDIF
	ENDIF
  IF !Empty(cc)
	IF ValType(CC)="A"
		FOR x:=1 TO ALen(CC)
		  IF At("@",CC[x])=0
  				cc[x]:=cc[x]+'@MioDom.it'
		  ENDIF
		NEXT x
	ELSE
	  IF At("@",cc)=0
  			cc:=cc+'@MioDom.it'
	  ENDIF
	ENDIF
	ENDIF
  IF !Empty(bcc)
	  IF At("@",bcc)=0
  			bcc:=bcc+'@MioDom.it'
	  ENDIF
	ENDIF
  IF At("@",DaEmail)=0
  		DaEmail:=AllTrim(DaEmail)+'@MioDom.it'
  ENDIF
   uTo := { A }
   //CC := elenco indirizzi separato da virgola
   oEmail             := CEmail{}
   oEmail:Subject     := OGGETTO
   oEmail:DestList    := uTO
   oEmail:CCList      := CC
   oEmail:BCCList    := BCC
   oEmail:cText       := CORPO
   oEmail:FromAddress :=  DaEmail
 	oEmail:FromName    := DaNome
 	*oEMail:SetMailTime()
   nsep:=GetTimeSep()
	SetTimeSep(Asc(":"))
 	oemail:cTime:=Time()
 	SetTimeSep(nsep)
 *	mess(NIL,"---",oemail:ctime)
 FOR i:=1 UPTO ALen(Allegati)
  oEmail:EncodeAttachment(Allegati[i,1])
 NEXT
 IF Conferma
  oEmail:ReturnReceipt := DaEmail
 ENDIF
   oEmail:EncodeEmail()
   oSmtp := cSmtp{CEmail{ oEmail:cRaw }}
   oSmtp:RemoteHost :=  Host
   lRet := oSmtp:SendMail()
RETURN lRet
Viene richiamata Così:
		InviaEmail(;
					"
De...@tin.it
",;	//	A AS STRING
					{"
c...@tin.it
","
c...@tin.it
","
c...@tin.it
"},;	//	CC AS USUAL
					"",;	//	BCC AS USUAL
					"oggetto",;	//	OGGETTO AS STRING
					"Corpo del Messaggio",;	//	CORPO AS STRING
					"
m...@sonoio.com
",;	//	DaEmail AS STRING
					"NomeMittente",;	//	DaNome
					{},;	//	Allegati AS USUAL
					"22.22.22.165",;	//	Host AS STRING
					FALSE;	//	Conferma AS LOGIC
					)	//
spero di esseti stato di aiuto.
Ciao
Carlo Russo
mario Summa ha scritto:


 ha scritto nel messaggio 
news:ejv572$e84$1...@fata.cs.interbusiness.it...
