Newsgroup: it.comp.lang.visual-basic
Titolo: Vbsendmail

Ciao a tutti.
Vorrei spedire un email con allegato utilizzando vbsendmail.
Ho fatto cosi:
 Private Sub Form_Load()
 Set poSendMail = New clsSendMail
End Sub
Private Sub Command1_Click()
 poSendMail.SMTPHost = "
OUT.VIRGILIO.IT
"
 poSendMail.From = "
pi...@tiscali.it
"
 poSendMail.FromDisplayName = txtFromName.Text
 poSendMail.Recipient = "
pi...@virgilio.it
"
 poSendMail.RecipientDisplayName = txtToName.Text
 poSendMail.ReplyToAddress = txtFrom.Text
 poSendMail.Subject = txtSubject.Text
 poSendMail.Attachment = "c:\ip.txt"     ' file attachment(s), optional
 poSendMail.Message = s
 poSendMail.Send
End Sub
poi in un modulo di classe ho scritto cosi:
Private WithEvents poSendMail As vbSendMail.clsSendMail
Non so se ho fatto correttamente, sta di fatto che mi da questo errore: 
TIPO DEFINITO DALL'UTENTE NON DEFINITO.
Come mai secondo voi? Io non conosco i moduli e nemmeno la funzione set, 
quindi per me questo è arabo. Da solo non riesco a risolvere na mazza.
Grazie a tutti 

 errore: TIPO DEFINITO DALL'UTENTE NON DEFINITO.
Il "Private WithEvents..." va nelle dichiarazioni del form.
Devi dichiarare quello che usi nel modulo in cui lo usi, se lo vuoi dichiarare
Privato. Se lo vuoi mettere in un modulo, perché ad esempio potresti volerlo
utilizzare anche da altri form, devi dichiararlo Public... detto all'ingrosso
e con un po' di sonno arretrato :-/
Bye, G.

Ciao, grazie della risposta.
Ho eleminato il modulo di classe, ed ho scritto cosi:
Option Explicit
Public WithEvents poSendMail As vbSendMail.clsSendMail
Private Sub Form_Load()
Set poSendMail = New clsSendMail
End Sub
Private Sub Command1_Click()
poSendMail.SMTPHost = "
OUT.VIRGILIO.IT
"
poSendMail.From = "
pi...@tiscali.it
"
poSendMail.FromDisplayName = txtFromName.Text
poSendMail.Recipient = "
pi...@virgilio.it
"
poSendMail.RecipientDisplayName = txtToName.Text
poSendMail.ReplyToAddress = txtFrom.Text
poSendMail.Subject = txtSubject.Text
poSendMail.Attachment = "c:\ip.txt"     ' file attachment(s), optional
poSendMail.Message = s
poSendMail.Send
End Sub
Mi da sempre lo stesso errore, a questo punto le domande sono due:
Il codice da me scritto è corretto?
Non è che per far funzionare vbsendmail devo , oltre a programmare , fare 
anche delle ulteriori operazioni? Su internet sembra cosi facile!

 fare anche delle ulteriori operazioni?
Ops... forse ci sono :-). Hai registrato la .dll prima di usarla ?
Da una finestra dos, vai in \windows\system o dove sta la vbsendmail.dll
e dai questo comando:
regsvr32 vbsendmail.dll
Ci dovrebbe anche essere scritto da qualche parte nel .doc allegato...
Bye, G.

ciao,
nel mio pc con installato il visual basic, dopo aver registrato la dll 
funziona.
In tutti gli altri pc, no. Nonostante io abbia registrato la dll anche in 
questi.
Perchè ??? 


ci sarà un prob di dipendenze  forse ti serve anche qualche altra dll 
che vb installa


Hai letto il doc ? Ci sono altre dipendenze. Leggeteli questi manuali,
mica li scrivono per divertimento.
Un Paperino RTFM !

> Hai letto il doc ? Ci sono altre dipendenze.
Ma non doveva essere più semplice dell'ape?
--
Greg

 Ma non doveva essere più semplice dell'ape?
E lo è. Contiene già fatto tutto il lavoro che sarebbe necessario per
usare le API o il Winsock stesso, incapsulato e con un'interfaccia
molto semplice.
Questo lavoro comprende:
* conformità alle RFC 821, 1521, 1939, 2047 e 2554
* gestione dell'IP
* gestione dell'MX
* gestione del protocollo SMTP
* gestione degli allegati
* codifica UUE e base64
* gestione dell'HTML
* gestione del MIME encoding
* gestione dell'autenticazione
* gestione del registro
* gestione degli errori
...e un bel po' di altra roba.
Il tutto compreso del codice sorgente VB, ragionevolmente pulito,
efficiente e ben commentato, nonché di svariati esempi.
TUTTO AGGRATISE.
Per usarlo, si chiede di leggere un documento, allegato allo zip
che scarichi, che ne spiega il funzionamento... ti pare troppo ?
Buon lavoro per rifare il tutto da capo.
**************************
The following two files MUST be installed and properly registered
on any target machine where you intend to run vbSendMail:
1. vbSendMail.dll
2. mswinsck.ocx
If you use the Package and Deployment Wizard to create an installation
for your target machines, verify that it includes these two files.
If  not, you must add them manually. As provided, vbSendMail is compiled
with  VB6.0, Service Pack 4. If your version is different, you may need to
recompile the dll on your system.
**************************
Bye, G.