Newsgroup: it.politica
Titolo: (OT, molto ot) inviare mails col vba dall' interno di una applicazione Microsoft Office senza usare Outlook

Ho  l' esigenza  di costruire  una applicazione in linguaggio VBA
all' interno di una  applicazione Microsoft (access, excel, word)
in grado di leggere  emails (ed allegati eventuali) e a sua volta
spedire emails ed allegati SENZA IN ALCUN MODO utilizzare Outlook
od Outlook su piattaforma Exchange Server ne tanto meno direttamente
Exchange Server. 
 
Su   google  ho trovato alcuni esempi che sfruttano il modello ad 
oggetti  CDO, ma  per  qualche ragione che mi sfugge (o forse non 
mi sfugge ...) non funzionano. 
 
Eccone uno : 
 
http://www.blueclaw-db.com/access_email_gmail.htm
 
 
Qualche aiuto ? Grazie.
 
 
 
 


Ma chiedi a El Terun, no? :)
-- 
Namib
.....
There's a blaze of light in every word (Leonard Cohen)

 mi sfugge ...) non funzionano. 
 
CDO ai tempi andava egregiamente, non so con i nuovi SO, e dipende anche dai requisiti di sicurezza che hai, pero' una delle sue palle e' che dovevi specificare esplicitamente tutti i settaggi SMTP, altrimenti non funzionava.
Avrai dei messaggi di errore nel log, se li posti, anche in privato, magari e' possibile capire cosa non va.
Dicendo solo che non funziona e' un po' dura...
 
--
saluti
mm


Ecco, prima di tutto dovrei capire come rimediare (leggere) i settaggi
SMTP. Come si fa ? Me lo puoi spiegare ? Dove li trovo i settaggi per 
un determinato PC ? 
 
In secondo luogo la fregatura e' che il sistema dei messaggi d' errore
non e' ben fatto inquantoche' mi da lo stesso messaggio numerico, ossia
questo : 
214 722 0973
 per VARI problemi. Ossia non c'e' corrispondenza
biunivoca tra problema e messaggio. Invece ci dovrebbe essere cazzarola.
 
E poi un' altra cosa : ho notato che gli indirizzi dell' esempio, per 
es. dove scrive :   
 
.Item("
http://schemas.microsoft.com/cdo/configuration/sendusing
") = 2 'NTLM method
.Item("
http://schemas.microsoft.com/cdo/configuration/smtpserver
") = "
smtp.gmail.com
"
.Item("
http://schemas.microsoft.com/cdo/configuration/smptserverport
") = 587
.Item("
http://schemas.microsoft.com/cdo/configuration/smtpauthenticate
") = 1
 
eccetera 
 
non sono raggiungibili via google, cioe' se tu scrivi per es : 
http://schemas.microsoft.com/cdo/configuration/sendusing
 
nella casella di google ti dice che il link non c'e' o qualcosa di simile.
 
Che ne dici ? Sbaglio io ? 
 

 un determinato PC ? 
 
I settaggi del server SMTP "non sono per un determinato PC", ma per "tutti i determinati PC".
Te l'ho già scritto, ma vedo che non leggi...
Google è potentissimo, non solo perchè gmail è gratis, ma perchè se digiti "SMTP gmail" e poi ricerchi trovi roba così, per esempio.
 
http://www.sendblaster.com/it/supporto/problemi-di-invio-e-di-smtp/utilizzare-il-server-smtp-di-gmail
 
 

 I settaggi del server SMTP "non sono per un determinato PC", ma per "tutti i determinati PC".
 
No, ogni pc ha il suo di settaggio. In generale. I server SMTP non sono 
tutti uguali e la porta di comunicazione pure. 
 
Come rilevarli ? Come si fa ? 
 
(omissis) 
 
mo ce guardo, aspe'

 Che ne dici ? Sbaglio io ?
 
 
si ...
 
:-)
 

 Che ne dici ? Sbaglio io ?
 
Ehm si, quelli non son URL, sono definizioni di schema, non e' un sito che puoi consultare online...
 
--
saluti
mm

 sito che puoi consultare online...
 
Lo sospettavo. C' ho provato ma lo sospettavo. Ma grazie comunque :-) 
Ma allora come faccio a verificare che siano attualmente raggiungibili ?
 

 Come rilevarli ? Come si fa ? 
 
Ma se te li ho appena linkati?!?!?

 nel codice di esempio ? 
 
"Li leggi" su google ad uno degli link che ti ho mandato.
Ma se non ti piacciono quelli i risultati della ricerca "SMTP GMail" sarà sicuramente milioni...

 Lo dico per la tua statistica di pazzia e comportamenti deviati, sia chiaro.
 
Ma ROTFL!

 Ma se te li ho appena linkati?!?!?
 
Mannagg ... Mo' scoppio :D 
OHHHHHMMMMMM, OOOOOOOHHHHMMMMMMMM ... 

 Eccome. Quello che appare è che non sai di cosa stai parlando...
 
Ebbe' ma se sapevo tutto non chiedevo no ? :D 

 OHHHHHMMMMMM, OOOOOOOHHHHMMMMMMMM ...
 
Mboooo ... a volte me pari sveglio... a volte un po' meno... 
 
Vabbè!
 
ciao!
 
 


secondo me sta trollando... oggi El terun è sotto tono e quindi c'e' spazio per trollare un pochetto!
 
non c'e' altra spiegazione!
 
:-D

 E' il SERVER che ha un indirizzo E una porta aperta per QUEL servizio.
 
Si. Credevo che la porta fosse un indirizzo riservato (della macchina 
locale) atto a trasferire info al mondo esterno. 
 
Questo perche' normalmente le "porte" sono cosi'. Ossia sono indirizzi
di  memoria  che  vengono mappati sulla macchina appositamente. Quando 
la macchina invia  bytes  a  quegli  indirizzi  "crede" di scrivere in 
RAM (la macchina non puo' far altro che leggere  e  scrivere  da  e in 
RAM). 
 
Invece scrivendo in quell' indirizzo spedisce dati alla stampante. E 
scrivendo in un altro indirizzo spedisce dati al disco rigido. E cosi'
via. 
 
Invece qui quella  porta ha un altro significato a quanto pare : e' 
semplicemente  un  protocollo per google. Ok. Credo d' aver capito. 
 
 
 
 
 
 

 semplicemente  un  protocollo per google. Ok. Credo d' aver capito.
 
Udiome'..... No mi spiace, ci vuole troppo tempo.
Pensavo ElTerun fosse il migliore, ma riapro la competizione.
 
--
saluti
mm


Mai sentito parlare di socket ?
 


Ecco vedi che vuol dire ? Adesso capisci quello che provo io 
quando parlo con te su tutti gli altri argomenti ... ;-) 
 
Dai spiega, non fare il coglione. Almeno in questo caso.

 Ma allora come faccio a verificare che siano attualmente raggiungibili ?
 
Riproviamo: non sono URL, sono definizioni di schema, quindi non devi raggiungere un bel niente.
 
Guarda che ElTerun e' inarrivabile, non ci provare.
 
--
saluti
mm


Solo sentito parlare :-)


Molto poco direi
Senza offesa
 

 Mai sentito parlare di socket ?
 
Roba vetusta, a Bologna usiamo i soccmel.
 
--
saluti
mm


El Terun assieme all' altro demente si stanno ancora leccando le ferite 
per la figura di cacca fatta (che da buoni dementi non potevano fare 
altrimenti)
 


Socmel va bene lo stesso?
 
:-)

 Mi pare una  boiata grossa come la pelata di Crozza.
 
Te lo potrei dimostrare


:)
 
Che sono ?
 

 Senza offesa
 
E chi s' offende ? Sul web sono handicappato
 


merde! ... mi hai rubato la battuta per qualche minuto!
:-)
 

 :-)
 
leeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeento, pari un gwbasic.
 
--
saluti
mm

 Che sono ?
 
Lo stesso, endpoint di un canale di comunicazione tra processi diversi, pero' passa piu' roba e ti diverti di piu'.
 
--
saluti
mm

 Guarda che ElTerun e' inarrivabile, non ci provare.
 
Se lo dici tu

 altrimenti)
 
Non si stanno leccando nulla e non gliene frega nulla, credimi.
 


Un altro di Bologna ?


Puoi darsi, per provare queste emozioni occorre un po di intelligenza 
umana, che non hanno
 

 Sbaglio ancora ?
 
Si. Nel senso che ti immagini che va a leggerli sul sito di microsoft. Mentre quello e' solo il nome univoco di un gruppo di proprieta' riferite in questo caso a CDO che il programma puo' usare, e se li va a leggere internamente, fa parte delle informazioni che hai quando installi la libreria.
Se proprio ti interessa, eccoti la reference a CDO 
http://msdn.microsoft.com/en-us/library/ms526266(v=exchg.10).aspx
 , sotto "Fields" trovi tutti i campi di configurazione accessibili tramite il namespace di CDO.
 
Scusa Catane', ma se ti interessa non lo impari certo a forza di domande, te lo devi studiare dalle basi, sembri uno che vuole costruire una casa e mi chiede come si fa a tagliare una tegola.
 
--
saluti
mm

 tutti i programmi che lo usavano in precedenza.  
 
Ho capito... Stai trolleggiando, non c'è altra spiegazione.
Lo hai detto tu eh: devo scrivere un programmino in VBA che mandi mail usando gmail.
Ora se vuoi mandare mail usando Gmail che tu scriva in VBA, in VB, in Java, in C# o in quel cazzo che ti pare devi specificare nel tuo cazzo di programma i dati del server GMAIL che sono gli stessi in VBA, in VB, in Java, in C#, su PC, su notebook, su tablet o su smartphone (iOS o Android).
 
Cazzo vuoi sfanculare, a parte te stesso con 'ste affermazioni che dimostrano che non sai di cosa stai parlando?
Se altri client in giro per il PC fanno riferimento a diversi server di posta cazzo gli frega del server che referenzi nel nuovo programmino che scrivi tu?!?!?

 via. 
 
Allora stai davvero trolleggiando...


Ed io che avevo detto?
 
:-D
 
Don't feed the troll!
 
 

 smartphone (iOS o Android).
 
E' che avevo paura che, se un certo programma P fa riferimento a
un certo SMTP, ci sia il rischio di settare quel SMTP ad ogni altro
programma. Capito ? 
 
Invece no, non e' cosi'. Adesso l' ho capito.


Perche' ? Quello che hai quotato e' vero.

 umana, che non hanno
 
Nemmeno. E' che ... non te lo so spiegare :-(
 
 


Intelligenza,sensibilita' e un po di umilta'
Un mix di queste cose
 

 e mi chiede come si fa a tagliare una tegola.
 
Piano piano se fece Roma ... 


No, e' che loro si divertono cosi'. E' una forma di divertimento 
che e' nata sul WEB. Prima non c'era.

 Perche' ? Quello che hai quotato e' vero.
 
E' vero che tu stai cercando di scrivere un client di posta e come risultato ottieni che mandi roba alla stampante? :-DDDDDDDDDDDDDDDDDD


d'artra parte er forno a microonde un cià l'interfaccia!
:-D


No, dicevo : e' vero che le porte funzionano in quel modo. 
Cioe' significano quello. 
 
 
 

 Cioe' significano quello.
 
Quelle a battente o a scrigno? :-D
 
Io dico che se tu imposti un client di posta dove indichi un server e una porta anche se sbagli la porta alla stampante, nè alla tua nè a quella del server, non finisce nulla. Vediamo chi ci prende...


Non mi sono spiegato.
All' interno del  computer  il  concetto  di *porta* e' quello 
che t' ho detto (vedi sopra). E io pensavo che tu mi stessi 
perculando per *quel* concetto. Che pero' e' verissimo.
 
Logicamente se pero', con un programma tipo quello degli esempi 
che abbiamo visto sopra, indirizzi la porta in quel modo ovviamente 
mai e poi mai la macchina la scambiera' per una di quelle porte 
"normali" (diciamo) perche' i dati vengono gestiti diversamente.
Per cui non succedera' nulla. 
 
Ok ? 
 
 

 All' interno del  computer  il  concetto  di *porta* e' quello 
 
No, proprio no. Altrimenti secondo te il SMTP server di google avrebbe una porta, quello di exchange un'altra, e cosi' via andare.
Invece magari usan tutti la stessa porta, magari no: dipende da come son configurati, e non ci son regole obbligatorie, solo convenzioni. 
E nella tua rete domestica, potresti usare una porta sul tuo client e cambiarla con una porta diversa una volta che arrivi al router.
Stai mischiando indirizzi e porte, ed attribuendo loro significati che non hanno.
Ma non eri un esperto informatico con anni di esperienza?
 
--
saluti
mm
 

 No, proprio no. 
 
http://it.wikipedia.org/wiki/Metodi_di_input/output
 
 


Divertimento, in che senso ?
 


Quelle sono porte per pilotare dispositivi locali alla macchina
Per la rete non si usa quel metodo, ma si usa il concetto di socket
In termini matematici e' una tupla composta da <protocollo,indirizzo,porta>
 
 
Nell' header di ogni pacchetto inviato esistono due tuple di questo 
genere, uno e' quella relativa al client, l' altra al server
 
 
 

 
http://it.wikipedia.org/wiki/Metodi_di_input/output
 
 
E questo esattamente come contraddirebbe quello che scritto il Minardi?

 genere, uno e' quella relativa al client, l' altra al server
 
Puoi dettagliare di piu', per cortesia ? Mi interessa.
 


rotfl
 
segui il dialogo tra me ed enoquick

 servizi lo vedi da solo che e' come dice il resto del mondo 
 
Gia' superata questa fase

 segui il dialogo tra me ed enoquick
 
Bene, l'ho seguito e quindi?


Il tutto e' abbastanza lungo,ti d'ho una breve infarinatura sui socket.
Un processo server utilizzando delle api del sistema operativo apre un 
socket sulla sua macchina
Ad esempio <inet,0.0.0.0,22>
il protocollo e' inet (tcp/ip quello classico ed il piu diffuso),l' 
indirizzo e' 0.0.0.0 (tutte le schede di rete esistenti sulla macchina) 
e 22 e' la porta
Notare che il tipo di applicazione non e' specificata
Esistono comunque delle porte std, la 22 e' quella per ssh,quindi si 
spera che il server utilizzi quella porta per ssh ma non e' obbligatorio
Una volta creato il socket il server si mette in ascolto su quella porta
Il client quando vuole comunicare con il server con l' applicazione ssh
crea un socket sulla propria macchina
Ad esempio <inet,192.168.100.10,2326>
Il protocollo e' sempre inet,l' indirizzo del client e' 192.168.100.10 e 
la porta e' 2326
La porta e' generata in modo casuale tra quelle libere
A questo punto il client apre la comunicazione con il server inviando un 
pacchetto di apertura dove nell' header   specifica protocollo,indirizzo 
del client,porta,indirizzo del server,porta
(praticamente compatta le due tuple in una in quanto il protocollo deve 
essere lo stesso tra client e server)
Quando il server riceve la richiesta di connessione si attua un 
protocollo di scambio pacchetti per iniziare la connessione (handshake)
A questo punto se il tutto e'andato bene il processo server in  ascolto 
crea un processo figlio che e' poi quello che fara' da servente verso il 
client ed il processo server si rimette in ascolto per altri client
Chiaramente client e server devono parlare la stessa lingua,in questo 
caso ssh
Una volta stabilita la connessione il client invia una richiesta al 
server (ad esempio un comando ssh) ed il server risponde e cosi avanti 
fino alla chiusura
 
 
 
 
 

 
http://it.wikipedia.org/wiki/Metodi_di_input/output
 
 
Udiome' iniziamo con wikipedia citata alla cazzo... Catane', dimmi che stai trollando...
 
--
saluti
mm


Mina' : se non la pianti sarai il primo in assoluto in 10 anni e piu' 
di NG che plonko. 
 
Non te ne frega un cazzo ? Nemmeno a me. 
 

 fino alla chiusura
 
Ok molto chiaro. 
Ma (dato un concetto qualsiasi di porta, che attendo) come fa un client 
a sapere quale e' la porta giusta del server ? Intendo la prima volta, 
quando il client tenta la comunicazione. 
 
Ciao


Catanese, hai chiesto, ho risposto, la risposta e' stata confermata sia da MaxBass che da Giovanni, che da enoquick, hai ammesso e dimostrato di non capire una sega dell'argomento (niente di male, nessuno nasce imparato) e quando te l'ho spiegato hai tagliato tutto, scritto "no proprio no" e citato un articolo di wikipedia che non c'entra una sega con le porte di cui stavam parlando, come ti ha dimostrato enoquick, che lodo per la pazienza.
 
Che cazzo vuoi che ti risponda? Tanto valeva che mi postassi un articolo che parlava delle porte di casa, in fondo chiamiamo porte pure quelle no?
 
A casa mia, chi non sa ascolta. A casa tua, evidentemente, invece corregge chi gli risponde e lo manda a fare in culo se non gli da' ragione, anche quando scrive boiate.
Gran sistema per imparare.
 
--
saluti
mm

 Catanese,
 
Va bene Minardi : hai ragione tu. Scusami.
 
 

 esempio,basta che quella porta non sia occupata da qualche altro servizio
 
Che vuol dire std, ssh ? 
 
 

 stesso per la porta del server ? 
 
Mi sa che la "porta" e' semplicemente un numerazzo che viene tradotto
in qualche modo (dal sistema operativo) ad una chiamata per indirizzo 
ad una applicazione. 
 
Ecco che e', piu' o meno. Dici di no ? 

 Il servizio erogato (ssh,smtp,ecc..).
 
Su questo non concordo. Una porta e' un canale di comunicazione, non puoi definire il servizio in base al numero di porta (come hai descritto correttamente subito dopo, scusa se taglio), a meno che tu non assuma che il server sia stato configurato strettamente seguendo gli standard (ssh 22, telnet 25, etc etc), nel qual caso il tuo commento ha senso.
Ma e' un'assunzione bella grossa e rischiosa.. 
Oh, sia chiaro, son solo puntiglioso, non sto mettendo in dubbio che tu non sappia cos'e' una porta eh?
 
--
saluti
mm

 Una porta e' un canale di comunicazione
 
Nemmeno. A quanto ho capito e' semplicemente un numero che 
viene  dato  in pasto al sistema operativo (o al processo) 
che lo converte  in  un  indirizzo al quale corrisponde un 
altro processo.
 
 

 Nemmeno.
 
Catanese scusa, hai mai pensato all'incredibile idea di scrivere "porta network" in google e vedere cosa salta fuori?
Scusa se mi permetto di suggerire una possibilita' cosi' astrusa ad un programmatore eh?
 
--
saluti
mm


Ma non finiranno mai queste sterili polemiche ? Diverra' mai un 
posto normale questo NG ? 
 

 imbecilli  integrali scusa ?
 
Come fai a discutere con persone che postano solo per insultare?
 
--
saluti
mm

 Come fai a discutere con persone che postano solo per insultare?
 
Ma scusa : se voi vi comportate *effettivamente* da imbecilli 
cosa pretendete ? Che vi si acclami ? 
 
Ponderate cio' che scrivete e vedrai che mi guardero' bene dall'
insultarvi. 

 cosa pretendete ? Che vi si acclami ? 
 
Quindi per te pretendere di utilizzare dati recenti o farti notare che stai sparando sentenze ("no""nemmeno") senza sapere nulla dell'argomento di cui parli sarebbe "comportarsi da imbecilli" o da "grande testa di cazzo"?
 
Niente da dire, grandi argomenti.
 
--
saluti
mm