PDA

Visualizza versione completa : ShellExecute e Email


Mentos
20-09-2002, 13.11.36
Ciao a tutti mi sono appena iscritta a questo forum anche perchè ho visto che ci sono veri e propri genietti.

sto sbattendo :S la testa da giorni per inserire l'allegato ad una email che "compongo" con ShellExecute. Qualcuno mi può dire qual'è la sintassi oltre a

shellexecute hnwd (non mi ricordo come si scrive),
"open",
"mailto:indirizzo destinatario
?subject=oggetto
&body=testo","","" eccetera

:confused:

Grazie

Lucavettu
20-09-2002, 16.21.09
cos'è shellexecute???

LoryOne
20-09-2002, 17.24.12
Ben venuta Mentos ! (The freshmaker)

"Ciao a tutti mi sono .... perchè ho visto che ci sono veri e propri genietti. " !

Scusa, di chi stai parlando ?
Genietti ?

Dai non esageriamo...ci proviamo almeno.

ekerazha
20-09-2002, 19.47.10
Genietti? Eccomi qua :D

ShellExecute l'ho usato in qualche mio programmino perchè, utilizzando le API, ti permette di aprire un qualsiasi file... dunque probabilmente mi sbaglio, ma non penso che nelle ultime versione di Outlook sia permesso aprire file tramite una email... ripeto, forse mi sbaglio, perchè magari ShellExecute serve anche per qualco'slatro che però non so, cmq io penso sia così...

LoryOne
21-09-2002, 13.08.03
Shellexecute non serve solo ad parire un qualunque tipo di file ma ne consente persino la modifica:)

Detto questo, credo non sia possibile spedire un'e-mail comprensiva di allegato con questa funzione.

Mi spiace Mentos ma mi sa che dovrai abbandonare l'idea di utilizzarla.:mad:

Mentos
23-09-2002, 08.43.49
Innanzitutto grazie per il benvenuto. Comunque con il ShellExecute è possibile inserire l'allegato ad una email in vb, l'avevo letto da qualche parte ma non ricordo dove e non ricordo la sintassi, è per questo che vi ho chiesto aiuto. Ciao a tutti:p

LoryOne
23-09-2002, 09.10.26
Si è possibile avendo a disposizione gia il file .eml
A questo punto la chiamata alla funzione apre il gestore di posta e poi sta all'utente inviare il messaggio.

Mentos
23-09-2002, 11.10.41
Esattamente, infatti il programma di posta me lo apre tranquillamente con tutte le impostazioni che gli ho dato, ma purtroppo non mi ricordo più come mettere l'allegato e non trovo da nessuna parte la documentazione per capire che sintassi utilizzare.
La mia idea era di preparare il tutto e fare solo più premere il pulsante invia messaggio all'utente visto che ho a che fare con i classici "utenti stupidi" :S che non sanno nemmeno comporre una mail... (S)
Comunque grazie

LoryOne
23-09-2002, 16.52.56
Facciamo un po di chiarezza:

Se davvero riuscissi ad allegare un file ad un messaggio di posta con la sintassi (opportunamente modificata) che hai proposto, cioè :

shellexecute hWnd,"open","mailto:indirizzo destinatario
?subject=oggetto
&body=testo",eccetera

non avresti bisogno del file .eml già presente sull'hard disk, perchè ti si aprirebbe Express (o un'altro gestore di posta) con i campi che hai specificato già compilati e comprensivi dell'allegato.

Il file .eml ti serve già comprensivo dell'allegato per poi richiamarlo con la funzione in causa.

Comunque, se hai già utilizzato shellexecute e sei riuscita ad allegare il messaggio, tanto di cappello.
In questo caso sarei io a chiedere aiuto a te su come fare e non viceversa.:)

Se riesci (e nel frattempo cercherò anch'io come si fa) a risolvere posta la soluzione, grazie.

Ciao :cool:

Mentos
24-09-2002, 10.16.07
<<Se davvero riuscissi ad allegare un file ad un messaggio di posta con la sintassi (opportunamente modificata) che hai proposto...non avresti bisogno del file .eml già presente sull'hard disk, perchè ti si aprirebbe Express (o un'altro gestore di posta) con i campi che hai specificato già compilati e comprensivi dell'allegato>>

Infatti io non ho bisogno del file .eml. Mi si apre il programma di posta predefinito con tutto compilato in base ai parametri che ho passato (mailto, body, subject ecc).
per inserire l'allegato bisogna mettere le cose in quest'ordine:
mailto
subject
attachment
body
questo è quanto ricordo.ma mentre per mailto,subject e body so quale carattere bisogna mettere prima (?,&) per l'allegato non me lo ricordo proprio. Nei miei vecchi programmi non l'ho mai utilizzato, l'avevo letto su qualche rivista e non ricordo quale...
eh, la vecchiaia

LoryOne
24-09-2002, 12.43.11
Mi devi un'aperitivo virtuale Mentos.

Public Function SendMail(ByVal MailAddress As String, ByVal MailSubject As String, ByVal MailBody As String, ByVal MailAttach As String)
ShellExecute 0&, vbNullString, "mailto: " & MailAddress & _
"&subject=" & MailSubject & _
"&body=" & MailBody & _
"&attach=" & Chr(34) & MailAttach & Chr(34) _
, vbNullString, vbNullString, vbHide
End Function

Brava, sei testarda e in questo ambiente è un pregio.
Ora anch'io ne so un po di più.:D :D :D

Mentos
24-09-2002, 14.24.05
L'aperitivo alcolico o analcolico? Te lo pago anche sul serio...bhè dipende dalla distanza!
Sei veramente un mito!!!ma scusa la domanda stupida, perchè il chr(34) prima e dopo l'allegato?

Mentos
24-09-2002, 14.50.16
Per l'aperitivo mi sa che dovrai aspettare...
non funziona...
Mi apre sempre l'email e mi mette tutto ma senza allegato...
ho sbagliato a dichiarare l'API? Mah...
Ho scritto così:

Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long


E così per la ShellExecute:

MailAttach = App.Path & "\Export\Export_" & _
Format(Date, "dd-mm-yyyy") & ".mdb"

ShellExecute 0&, vbNullString, _
"mailto:indirizzo dest1; " & _
"indirizzo dest2" & _
"?subject=oggetto" & _
"&body=testo" & _
"&attach=" & Chr(34) & MailAttach & Chr(34) _
, vbNullString, vbNullString, vbhide
quando però clicco sul pulsante che dovrebbe "mandare l'email" mi apre Outlook Express (il mio prg predefinito di posta, anche se ho configurato anche MS Outlook 97) e mi inserisce tutti i dati, ma di allegato neanche l'ombra e il file c'è nella directory che ho scritto in MailAttach...

HELP!!!!

edir
24-09-2002, 16.42.14
prova a dare un occhio qui magari ci trovi qualcosa di utile...

www.allapi.net

ciao
Edi

LoryOne
24-09-2002, 16.51.29
Infatti non funziona (N) (N)

A dire il vero quando ho postato il codice non avevo idea che non funzionasse.
A prima vista mi sembrava tutto ok.

'sta specie di "aborto" l'ho trovato con Google
attach+vb & shellexecute

Mi sa che ho ancora sete, accidenti !!!:mad:

LoryOne
24-09-2002, 19.24.27
Svelato l'arcano mistero:
Girovagando su Internet sono venuto a conoscenza che l' "aborto" in realtà funziona ma solo con Outlook e non con Express.

Boh, Microsoft è sempre più misteriosa.

Dimenticavo...cin cin (D) (D)

LoryOne
24-09-2002, 19.32.03
Mi sono dimenticato una cosa:
Perchè Chr$(34) ?

Perchè la sintassi corretta per allegare un file ad una e-mail è questa:

mailto:[indirizzo]?subject=[oggetto]&Body=[corpo del testo]&Attach="[nome file]"

&Attach= DEVE stare sempre in fondo.

Come faresti a passare questa stringa "peccato non esserci riusciti !" come parametro ad una Sub comprensiva di doppi apici (o virgolette come preferisci) ?

Sub Scrivimi(byval S as string)
msgbox S
End Sub
.......
.....
......
s=Chr$(34) & "peccato non esserci riusciti !" & Chr$(34)
Scrivimi S

La chiamata alla funzione farebbe apparire questo:
"peccato non esserci riusciti !" comprensivo di virgolette.

Ciao:cool: