Newsgroup: it.comp.lang.visual-basic
Titolo: winsock per smtp

Ciao a tutti.
Sto creando una applicazione per spedire delle mail dialogando con il
server smtp. Uso l'oggetto winsock, ma non so come dialogare. Devo usare
qualche sistema particolare?
Grazie per le risposte.
Davide
-- 
Volontario Anti-Troll (TM) 
SecurFaq: 
http://members.nbci.com/gouldukat/
DocTrolls: 
http://it.geocities.com/roccopapaleo/faq/italiano/Troll.html
Netiquette: 
http://www.inferentia.it/netiquette/dis.html

 ha scritto nel messaggio
news:3b2745c8...@news.galactica.it...


 qualche sistema particolare?
Ops, chi si vede da queste parti, bentrovato :-)
C'č un esempio completo sul Sito Comune: 
http://it-lang-vb.net
 , cerca
SMTP, e gią che ci sei fatti un giro, c'č una marea di roba interessante.
Bye, G.

Questo è un mio consiglio personale (E quindi vale - di 0).
Apri telnet; (c:\windows\telnet)
collegati ad un server smtp; (Es.: 
mail.tin.it
 (Porta 39 credo))
sbattici la testa finche non hai capito cosa succede;
Magari è qualcosa che in termini di tempo è moooolto più dispendioso di
leggere una guida di 5 righe, ma sicuramente ti farai una idea certa di cosa
e come si fà a inviare una mail via smtp.
-- Luvme2times
"Love me two times babe | I'm going awayyyy"
J.M.D.

> collegati ad un server smtp; (Es.: 
mail.tin.it
 (Porta 39 credo))
SMTP: porta 25... :P
--
--
Elena *DElyMyth* Franco
DEly...@tiscalinet.it
ICQ#: 8761263 - MSN: 
dely...@tiscalinet.it
Yahoo!: delytisc - AIM: DElyMyth1
--

 writes:
DC> Ciao a tutti.
DC> Sto creando una applicazione per spedire delle mail dialogando con il
DC> server smtp. Uso l'oggetto winsock, ma non so come dialogare. Devo usare
DC> qualche sistema particolare?
Il modo più corretto è cercarsi la RFC che descrive lo SMTP.
fare un telnet sulla porta 25 e fare help...
--
Gian Uberto| main(){printf(&unix["\021%six\012\0"],(unix)["have"]+"fun"-0x60);}
Lauri      |                        David Korn, 1987 ioccc best one liner 
(aka saint)|-------------------------------------------------------------------
em@ail: 
sa...@eng.it
 ( vedere X-nospam nello header - see X-nospam in header )

SMTP, e gią che ci sei fatti un giro, c'č una marea di roba interessante.
lo vado subito a vedere! Grazie per la dritta!!!
Ciao!


sbattici la testa finche non hai capito cosa succede;
dunque... dalla rfc 821 ho appreso che:
HELO nomedominio - serve per farsi riconoscere dal server
MAIL FROM: <indirizzo> - specifica l'indirizzo del mittente (statico)
RCPT TO: <indirizzo> - specifica l'indirizzo del destinatario
DATA - apre una sessione di word processing per la scrittura della mail
nella quale 
Subject: oggetto della mail
posta all'inizio e separata dal messaggio da una blank line definisce
l'oggetto della mail.
in egual modo:
From: nome del mittente
To: nome del destinatario
definiscono gli alias visualizzati dai mailreader.
ma sugli attachement NIENTE!
ho percepito solo un ASCII 7bit, ma non so che farmene...
Ciao! Aspetto news!


fare un telnet sulla porta 25 e fare help...
e se io volessi farlo da visual basic? usando winsock dovrei aprire la
porta locale 25 e andare sulla porta remota 23?
Giusto?
Grazie!


lo vado subito a vedere! Grazie per la dritta!!!
ok, l'ho visto, studiato un pochino, ma e' incasinatissimo, ed alcune
cose proprio non le capisco!
Ad esempio: perchč mi falla la connessione se la stessa stringa la porto
su un mio progetto? Cut & paste, puro e semplice, ma niente... forse non
tengo conto di timeout vari, ma per una prova non me ne frega niente!
non sapete se c'č in giro un altro esempio magari piu' esplicito oppure
qualche articolo che ne parla? Di Winsock per smtp, ovvio.
Per adesso Grazie a tutti!


 writes:
DC> ok, l'ho visto, studiato un pochino, ma e' incasinatissimo, ed alcune
DC> cose proprio non le capisco!
Comincia col  pensare che  i socket (di  cui Winsock è  un implementa-
zione) sono una cosa che 'stà sotto' e trasporta i messaggi del dialo-
go smtp.  Al posto di Winsock potrebbe esserci (quasi) qualsiasi cosa,
che so, piccioni viaggiatori.
Nota che i loop 
	While OKToSend = False: DoEvents: Wend
servono a "simulare" le send e receive sincrone (quelle dell'OCX sono
asincrone).
DC> Ad esempio: perchè mi falla la connessione se la stessa stringa la porto
DC> su un mio progetto? Cut & paste, puro e semplice, ma niente...
Quale stringa ?  Sei sicuro che l'indirizzo del mailserver sia corret-
to?


to?
ehm, pardon correggo: inserivo la stringa di connessione e subito dopo
gli davo un helo; quindi per il motivo di cui sopra mi sfallava tutto.
Thnx! Ora dovrei capire l'UUEncode ed il perchè non è ottimizzato per
allegati grandi (le specifiche dicono max 150K).


> asincrone).
DC> si, ma io leggo: continua a ciclare, quando okToSend è verificato
DC> (immagino quando posso ritrasmettere) esci dal ciclo e continua,
DC> altrimenti vai in timeout.
Hai messo la funzione che pone OkToSend a true ? E' il gestore dell'evento
di dati ricevuti.
DC> Quindi tu mi stai dicendo che se io spedisco
DC> tutto in una volta l'oggetto non sta ad aspettare i tempi giusti, e
DC> manda tutto a pallino? Quindi è per questo che se non metto i cicli tipo
DC> quello sopra non funge una mazza?
No, funziona ma non riusciresti ad avere le risposte del server quando
ti serve verificare il codice di risposta.
DC> nell'esempio che ho io dichiara al volo un timer senza aere l'oggetto
DC> inserito. Anche questo devo capirlo bene.
Ma hai controllato la documentazione allegata, il class browser o no ?
Property Timer As Single
    read-only
    Member of VBA.DateTime
    Returns the number of seconds elapsed since midnight
DC> Ora dovrei capire l'UUEncode ed il perchè non è ottimizzato per
DC> allegati grandi (le specifiche dicono max 150K).
Non lo ho controllato. Probabilmente tiene troppa roba in memoria.


Non lo ho controllato. Probabilmente tiene troppa roba in memoria.
beh, per ora prendo la funzione paro paro. Poi me la studio con prove di
file >300k
scusa se ho rotto un pò, ma pensavo di vedere piu' commenti nel
programma. Ho dovuto fare un pò di prove per mettermi nell'ottica e tu
mi hai aiutato molto.
grazie!


On Tue, 19 Jun 2001 10:32:49 GMT, 
kra...@libero.it
 (Davide Casero)
wrote:
<cut all>
ho visto che la procedura di decodifica unicode non permette l'invio di
files multipli. 
lui fa:
begin 666 nomefile
...
...
...
'
end
Se io ne metto 2 (di allegati) uno in fila all'altro e spedisco,
l'allegato viene catalogato ma non può essere aperto. Come faccio?
Ciao!


 writes:
DC> On Tue, 19 Jun 2001 10:32:49 GMT, 
kra...@libero.it
 (Davide Casero)
DC> wrote:
DC> <cut all>
DC> ho visto che la procedura di decodifica unicode non permette l'invio di
DC> files multipli. 
DC> lui fa:
DC> begin 666 nomefile
DC> ...
DC> ...
DC> ...
DC> '
DC> end
Se non  erro uudecode non  accetta file multipli encoded  nello stesso
contenitore, esce al primo end che incontra.


contenitore, esce al primo end che incontra.
Questo è un bel casino! quindi devo implementare l'encoder MIME? E dove
lo trovo? c'è un oggetto o un algoritmo....
Illuminami!


> contenitore, esce al primo end che incontra.
DC> Questo è un bel casino! quindi devo implementare l'encoder MIME? E dove
DC> lo trovo? c'è un oggetto o un algoritmo....
Il come fare lo trovi nelle apposite FAQ. Io purtroppo ho solo del codice in
LISP che si appoggia a programmi esterni per la codifica base 64


LISP che si appoggia a programmi esterni per la codifica base 64
Giusto! Bazzicando in giro ho trovato una dll per la codifica e la
decodifica in base 64. Visto che è free, uso quella. Altre librerie che
ho trovato erano tutte a pagamento, e sinceramente non mi va di spendere
per qualcosa di mooolto sperimentale.
La provo, nonostante abbia una gran confusione in testa. Sinceramente
non mi aspettavo un così gran casotto per delle E-mail, ma del resto si
sa, all'inizio è tutto difficile, poi diventa una ca$$ata (speriamo!).
Ti ringrazio per l'aiuto che mi hai dato, e scusa per il tempo che ti ho
fatto perdere. Tuttavia penso che forse avro' ancora bisogno di aiuto!
;)
Ma per adesso me la smazzo io, altrimenti non mi diverto piu'!
Ciao e Grazie!


> LISP che si appoggia a programmi esterni per la codifica base 64
DC> Giusto! Bazzicando in giro ho trovato una dll per la codifica e la
DC> decodifica in base 64. Visto che č free, uso quella. 
Occhio  che ogni  allegato deve  stare nel  suo settore  (separato dal
delimitatore   che  decidi   tu)  con   indicazione   della  tipologia
dell'allegato
DC> La provo, nonostante abbia una gran confusione in testa. Sinceramente
DC> non mi aspettavo un cosě gran casotto per delle E-mail
Quanto era  bello il  tempo in cui  per tutti  e-mail era un  canale a
caratteri in cui  era buona cosa mettere un  newline dalle parti della
72^ colonna e  non ricevevi messaggi in cui il  testo era ripetuto due
volte di cui la seconda frammista di tag assolutamente inutili.
If VoleviProvareADirmi("Il tuo client č antiquato") Then
	WearLuserCap
	GoTo EspletareFunzioniFisiologiche
End If


volte di cui la seconda frammista di tag assolutamente inutili.
^___________^

 >Quanto era  bello il  tempo in cui  per tutti  e-mail era un  canale a
[...]