Newsgroup: it.comp.lang.visual-basic
Titolo: [VB6] Winsock

Non ho mai usato winsock e non ho la più pallida idea di come fuziona.
Vorrei usarlo per far spedire delle mail con allegati da un programma.
Ho scaricato 4 o 5 esempi da internet ma nessuno di questi funziona, danno 
tutti errore sicuramente non so impostare server e altro.
Mi date in link da dove scaricare un esempio che funziona sicuramente, che 
avete già testato voi
Grazie Carmelo 

 ha scritto nel messaggio 
news:487f5153$0$40315$4faf...@reader5.news.tin.it...


Carmelo ha scritto:

Traduco:
Non ho mai usato un'automobile e non ho idea di come funzioni.
Ho provato ad usarne qualcuna a caso, trovata in giro, ma nessuna si avvia.
Mi date le istruzioni su come costruire una Ferrari?
1-Impara come funziona winsock (studio studio studio)
2-Impara come funzione il protocollo SMTP
3-Impara come si allegano file ad una mail
4-Costruisci una classe che ti spedisce le mail o, nell'ipotesi 
migliore, ne prendi una già fatta ma con la cognizione su cosa va 
modificato per farla funzionare.
Nicola


Questo non usa l'ocx ma direttamente le API wsock32 e funziona:
http://www.freevbcode.com/ShowCode.Asp?ID=109
Bye
Raf 

 Nicola
Rispondo ora perchè ho letto solo sabato il post.
Hai sicuramente ragione, prima bisogna farsi un'idea di qualcosa e poi dire 
che non funziona.
Comunque io ho scaricato gli esempi proprio per cercare di capirci di più.
Ti posso dire che su 4 esempi che ho visto, nessuno degli esempi usa gli 
stessi paramtri per settare il winsock, quindi a quel punto non ci ho capito 
niente.
Ho messo insieme quello che di comune c'era fra di loro in una classe e 
smanettando sono riuscito a farlo funzionare.
Ti faccio un esempio in 3 dei 4 esempi si passano gli allegati solo con il 
percorso. L'ultimo che ho scaricato passa l'allegato e un file temporaneo, 
la classe li codifica a base 64, mentre negli altri questo non succede.
Qual'è la procedura giusta?
Aggiungo anche che tutti gli esempi (compreso vbSendmail) anche se usano una 
classe, questa si appoggia ad un controllo winsock di una form.
Io volevo evitare di aggiungere il controllo.
Ciao Carmelo

 smanettando sono riuscito a farlo funzionare.
Vedi che sbagli approccio?
Le cose non vanno fatte alla carlona. Non basta creare qualcosa che 
funzioni per opera dello Spirito Santo. Una cosa deve funzionare perchè 
tu sai cosa hai creato.
Se domani succede un casino tu devi sapere dove mettere le mani.
Chi ti dice che il codice che hai scritto vada bene per file grossi? E 
per allegati multipli?
Sai come sono fatti gli header di una mail? Sai come viene suddiviso il 
corpo del messaggio dagli header e dagli allegati? Sai come si 
differenziano il corpo del messaggio in puro testo da quello in HTML?
Non sai neanche se la procedura per allegare sia aggiungere un link 
oppure codificare in base64, come fai a fare un programma che faccia 
qualcosa che non sai?
Se continui così avrai un programma rattoppato che fa qualcosa alla bene 
e meglio, ma al primo problema sarai nei casini fino al collo.
Ascolta il parere di uno che con l'informatica ci mangia: cambia metodo.
Nicola

 Nicola
Anche questa volta hai ragione, ma non avendo mai usato nè winsock nè il 
protocollo SMTP da qualche parte dovevo pur iniziare.
Ho scelto la via degli esempi, intanto per farmi un'idea e poi perchè la 
guida non è che mi aiuti molto.
Tu dici studia studia, ma dove? ho cercato su internet nozioni sul 
protocollo SMTP ma dice sempre le stesse cose e non è che le mie conoscenze 
siano migliorate di tanto.
Ciao Carmelo

 form. Io volevo evitare di aggiungere il controllo.
Io ti ho postato un esempio che non lo usa, ci hai dato un'occhiata?
Raf 

 Io ti ho postato un esempio che non lo usa, ci hai dato un'occhiata?
Per curiosità ho dato un'occhiata al sorgente della libreria sviluppata in
VB6,
e fra le altre cose vi è un Form con un Control WinSock,
utilizzato nell'inizializzazione della classe.
Private Sub Class_Initialize()
    [Cut]
    ' instantiate the Winsock Control
    Set sckMail = frmSck.WinSck
    [Cut]
End Sub
--
Ciao Fede
By Chicco Production
http://bcp.freetools.it

Esempio su come inviare mail con allegati senza l'uso di controlli
aggiuntivi,
ma esclusivamente con chiamate Api:
http://tinyurl.com/5bvxxr


 End Sub
Gi�, hai ragione! Non mi ricordavo proprio, ho riaperto il progetto della 
libreria, e vedendo tutte le declare delle API wsock32 proprio non pensavo 
che alla fine utilizzasse il controllo ocx...
My fault!!!
Bye
Raf 

 siano migliorate di tanto.
qui ci sono esempi completi funzionanti , io incomincerei
da qui  se ti serve un "coso" per un uso immediato e/o
almeno per vedere le basi di funzionamento , poi
volendo ti allarghi e fai tutto da solo [1]
http://www.ostrosoft.com/smtp_component/smtp_vb.zip
da: 
http://www.ostrosoft.com/smtp_component.asp
[1]  
http://www.example-code.com/vb/smtp.asp
da:
http://snipr.com/32ruu
--
Fosco