Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.lang.visual-basic > #19201 > unrolled thread

Invio mail

Started byGreg <greg@alicie.com>
First post2017-10-19 22:18 +0200
Last post2017-10-20 01:25 +0200
Articles 12 — 4 participants

Back to article view | Back to it.comp.lang.visual-basic


Contents

  Invio mail Greg <greg@alicie.com> - 2017-10-19 22:18 +0200
    Re: Invio mail Luca D <antaniserse@yahoo.it> - 2017-10-19 14:12 -0700
    Re: Invio mail Paperino <non_te@lo.dico.invalid> - 2017-10-19 23:59 +0200
      Re: Invio mail Greg <greg@alicie.com> - 2017-10-20 13:49 +0200
        Re: Invio mail Paperino <non_te@lo.dico.invalid> - 2017-10-20 17:21 +0200
          Re: Invio mail Greg <greg@alicie.com> - 2017-10-20 17:36 +0200
            Re: Invio mail Paperino <non_te@lo.dico.invalid> - 2017-10-20 22:38 +0200
              Re: Invio mail Paperino <non_te@lo.dico.invalid> - 2017-10-20 23:31 +0200
              Re: Invio mail Greg <greg@alicie.com> - 2017-10-23 11:13 +0200
                Re: Invio mail Paperino <non_te@lo.dico.invalid> - 2017-10-23 11:49 +0200
                  Re: Invio mail Greg <greg@alicie.com> - 2017-10-23 15:29 +0200
    Re: Invio mail Franz_aRTiglio <franzgol@N0SPAMtin.it> - 2017-10-20 01:25 +0200

#19201 — Invio mail

FromGreg <greg@alicie.com>
Date2017-10-19 22:18 +0200
SubjectInvio mail
Message-ID<osb1ao$49u$1@solani.org>
Ho bisogno di mandare una mail con Outlook, o meglio, precompilare il tutto e poi lasciare l'invio o meno 
all'utilizzatore. Per questo vorrei presentargli una mail con il cursore alla fine del testo e non all'inizio. Come 
fare?

Questo il codice usato:
mail = "mailto: mirko@gmail.com"
sog = " ?subject=Invio Mail di prova "
bod = "&body=Buongiorno, le scrivo per ..."
s = ShellExecute(0&, vbNullString, mail & sog & bod, vbNullString, "C:\", SW_SHOWNORMAL)

-- 
Greg

[toc] | [next] | [standalone]


#19203

FromLuca D <antaniserse@yahoo.it>
Date2017-10-19 14:12 -0700
Message-ID<714f353b-2552-4a19-9978-760c55db01f9@googlegroups.com>
In reply to#19201
On Thursday, October 19, 2017 at 10:18:33 PM UTC+2, Greg wrote:
> Ho bisogno di mandare una mail con Outlook, o meglio, precompilare il tutto e poi lasciare l'invio o meno 
> all'utilizzatore. Per questo vorrei presentargli una mail con il cursore alla fine del testo e non all'inizio. Come 
> fare?

E' tutto molto artigianale, ma *potrebbe* (non ho provato, no VB6 qui) funzionare usando una variante diversa di ShellExecute, che ti da qualche handle in più su cui puoi lavorare... esempio: https://pastebin.com/bWmgwQiZ

[toc] | [prev] | [next] | [standalone]


#19204

FromPaperino <non_te@lo.dico.invalid>
Date2017-10-19 23:59 +0200
Message-ID<osb78i$9ia$1@gioia.aioe.org>
In reply to#19201
Greg ha scritto:
> Ho bisogno di mandare una mail con Outlook, o meglio, precompilare il 
> tutto e poi lasciare l'invio o meno all'utilizzatore. Per questo vorrei 
> presentargli una mail con il cursore alla fine del testo e non 
> all'inizio. Come fare?
> 
> Questo il codice usato:
> mail = "mailto: mirko@gmail.com"
> sog = " ?subject=Invio Mail di prova "
> bod = "&body=Buongiorno, le scrivo per ..."
> s = ShellExecute(0&, vbNullString, mail & sog & bod, vbNullString, 
> "C:\", SW_SHOWNORMAL)

Usa l'automazione. Crea un nuovo progetto VB, imposta un riferimento
a "Microsoft Outlook XX.0 Object Library" (XX dipende da che Outlook
hai, ma non preoccuparti: il riferimento è comunque alla MSOUTL.OLB)
poi in un pulsante incolla questo codice:

'**********************
Private Sub Command1_Click()
  Dim objOutlook As Outlook.Application
  Set objOutlook = New Outlook.Application

   Dim objMailItem As Outlook.MailItem
   With objOutlook
    Set objMailItem = .CreateItem(olMailItem)
     With objMailItem
      .Subject = "Soggettone"
      .Body = "Corpo della mail. Puoi andare a capo con '& vbNewLine'"
      .Recipients.Add "indirizzo@serverposta.it"
      .Save
     End With
   End With
End Sub
'**********************

Il .Save salva la mail in bozza senza inviarla, e l'utente
può scegliere cosa fare.

Bye, G.

[toc] | [prev] | [next] | [standalone]


#19207

FromGreg <greg@alicie.com>
Date2017-10-20 13:49 +0200
Message-ID<oscns7$4k7$1@solani.org>
In reply to#19204
Il 19/10/17 23:59:55 Paperino ha scritto:

> Usa l'automazione. Crea un nuovo progetto VB, imposta un riferimento
> a "Microsoft Outlook XX.0 Object Library" (XX dipende da che Outlook
> hai, ma non preoccuparti: il riferimento è comunque alla MSOUTL.OLB)
> poi in un pulsante incolla questo codice:
>
> '**********************
> Private Sub Command1_Click()
>   Dim objOutlook As Outlook.Application
>   Set objOutlook = New Outlook.Application
>
>    Dim objMailItem As Outlook.MailItem
>    With objOutlook
>     Set objMailItem = .CreateItem(olMailItem)
>      With objMailItem
>       .Subject = "Soggettone"
>       .Body = "Corpo della mail. Puoi andare a capo con '& vbNewLine'"
>       .Recipients.Add "indirizzo@serverposta.it"
>       .Save
>      End With
>    End With
> End Sub
> '**********************
>
> Il .Save salva la mail in bozza senza inviarla, e l'utente
> può scegliere cosa fare.
>
> Bye, G.

Grazie Paperino,
sto provando questa soluzione ma otengo un "errore definito dall'applciazione" sulla riga .Recipients.Add 
"prova@tin.it"

Cosa può essere?

-- 
Greg

[toc] | [prev] | [next] | [standalone]


#19208

FromPaperino <non_te@lo.dico.invalid>
Date2017-10-20 17:21 +0200
Message-ID<osd463$1gnk$1@gioia.aioe.org>
In reply to#19207
Greg ha scritto:
> Paperino ha scritto:
>> Usa l'automazione. Crea un nuovo progetto VB, imposta un riferimento
>> a "Microsoft Outlook XX.0 Object Library" (XX dipende da che Outlook
>> hai, ma non preoccuparti: il riferimento è comunque alla MSOUTL.OLB)
>> poi in un pulsante incolla questo codice:
>>
>> '**********************
>> Private Sub Command1_Click()
>>   Dim objOutlook As Outlook.Application
>>   Set objOutlook = New Outlook.Application
>>
>>    Dim objMailItem As Outlook.MailItem
>>    With objOutlook
>>     Set objMailItem = .CreateItem(olMailItem)
>>      With objMailItem
>>       .Subject = "Soggettone"
>>       .Body = "Corpo della mail. Puoi andare a capo con '& vbNewLine'"
>>       .Recipients.Add "indirizzo@serverposta.it"
>>       .Save
>>      End With
>>    End With
>> End Sub
>> '**********************
>>
>> Il .Save salva la mail in bozza senza inviarla, e l'utente
>> può scegliere cosa fare.
> Grazie Paperino,
> sto provando questa soluzione ma otengo un "errore definito dall'applciazione" sulla riga .Recipients.Add 
> "prova@tin.it"

Altri indizi? Un codice di errore, qualcosa...?
Se provi a immettere gli stessi dati direttamente da Outlook
che succede?

Capirai che debuggare da qua a naso non è esattamente semplice :-/

Bye, G.

[toc] | [prev] | [next] | [standalone]


#19209

FromGreg <greg@alicie.com>
Date2017-10-20 17:36 +0200
Message-ID<osd56l$dh0$1@solani.org>
In reply to#19208
Il 20/10/17 17:21:34 Paperino ha scritto:

> Altri indizi? Un codice di errore, qualcosa...?
> Se provi a immettere gli stessi dati direttamente da Outlook
> che succede?

E' un errore di run-time di cui non non ricordo il numero, poi ovviamente va in crash.
Adesso non ho più Outlook fino a lunedi non posso vedere il numero, ma ho fatto oggi qualche ricerca per quel codice 
senza trovare qualcosa di utile, è molto generico

Buon we

-- 
Greg

[toc] | [prev] | [next] | [standalone]


#19210

FromPaperino <non_te@lo.dico.invalid>
Date2017-10-20 22:38 +0200
Message-ID<osdmsk$fo6$1@gioia.aioe.org>
In reply to#19209
Greg ha scritto:
> Paperino ha scritto:
>> Altri indizi? Un codice di errore, qualcosa...?
>> Se provi a immettere gli stessi dati direttamente da Outlook
>> che succede?
> E' un errore di run-time di cui non non ricordo il numero, poi 
> ovviamente va in crash.
> Adesso non ho più Outlook fino a lunedi non posso vedere il numero, ma 
> ho fatto oggi qualche ricerca per quel codice senza trovare qualcosa di 
> utile, è molto generico

Hmmm... Probabilmente è 287. Pare essere un effetto collaterale
del rilevamento di un problema di sicurezza. Outlook vorrebbe
avvisarti (e per qualche motivo non riesce a farlo - probabilmente
perché in quel momento non è visibile - e va in errore) che
un'applicazione esterna sta tentando di inviare mail a nome
dell'utente.
Più info qui: http://www.outlookcode.com/article.aspx?ID=52

Prima di provare metodi più drastici prova con una
modifica semplice; al posto di:

   .Recipients.Add "indirizzo@serverposta.ext"

prova con un semplice:

   .To "indirizzo@serverposta.ext"

e vedi che succede. Ti dico subito che potrebbe non funzionare
neanche nel codice, ma dipende da troppe cose.

Se non va, bisogna modificare un paio di settaggi
di sicurezza di Outlook.
Dal menu File-->Opzioni-->Centro protezione-->Impostazioni
centro protezione-->Accesso programmatico-->spunta Non segnalare
mai attività sospette--->OK-->OK
E controlla anche che l'AV sia attivo e funzionante,
te lo dice lì sotto.

Poi riprova (con .Recipient.Add) e fai sapere.

> Buon we

Altrettanto :-)

Bye, G.

[toc] | [prev] | [next] | [standalone]


#19211

FromPaperino <non_te@lo.dico.invalid>
Date2017-10-20 23:31 +0200
Message-ID<osdpuk$kd0$1@gioia.aioe.org>
In reply to#19210
Paperino ha scritto:
[CUT]
> neanche nel codice, ma dipende da troppe cose.

Non so come, forse a forza di copia incolla taglia e cuci,
mi ero perso questo pezzo:

Una seconda alternativa sarebbe quella di utilizzare un
.Display subito prima del .Recipient.Add per attivare
e visualizzare Outlook e la mail contenuta, ma non so
se la cosa ti possa stare bene. D'altra parte, prima o
poi l'utente deve pur visualizzarla, per spedirla.

> Se non va, bisogna

[CUT]

Bye, G.

[toc] | [prev] | [next] | [standalone]


#19212

FromGreg <greg@alicie.com>
Date2017-10-23 11:13 +0200
Message-ID<oskbqt$4e0$1@solani.org>
In reply to#19210
Il 20/10/17 22:38:56 Paperino ha scritto:

>
> Hmmm... Probabilmente è 287. Pare essere un effetto collaterale
> del rilevamento di un problema di sicurezza. Outlook vorrebbe
> avvisarti (e per qualche motivo non riesce a farlo - probabilmente

Si, era il 287

> prova con un semplice:
>
>    .To "indirizzo@serverposta.ext"
>
> e vedi che succede. Ti dico subito che potrebbe non funzionare
> neanche nel codice, ma dipende da troppe cose.

E invece va benissimo :) Grazie

Visto che conosci cosi bene Outlook, ti chiedo qualche info. Lo sto spulciando col visualizzatore oggetti (è una cosa 
vastissima forse piu di excel) per cercare le opzioni di Conferma Consegna, Conferma Lettura e Priorità Alta.
Ho trovato le prime due che dovrebbero essere VotingOption o VotingResponse ma non riesco a farle funzionare. Sulla 
Priority alta non ho ancora trovato nulla ma ci deve essere per cui cerco ancora

-- 
Greg

[toc] | [prev] | [next] | [standalone]


#19213

FromPaperino <non_te@lo.dico.invalid>
Date2017-10-23 11:49 +0200
Message-ID<oskdum$129r$1@gioia.aioe.org>
In reply to#19212
Greg ha scritto:
> Paperino ha scritto:
>> Hmmm... Probabilmente è 287. Pare essere un effetto collaterale
>> del rilevamento di un problema di sicurezza. Outlook vorrebbe
>> avvisarti (e per qualche motivo non riesce a farlo - probabilmente
> Si, era il 287
>> prova con un semplice:
>>    .To "indirizzo@serverposta.ext"
>> e vedi che succede. Ti dico subito che potrebbe non funzionare
>> neanche nel codice, ma dipende da troppe cose.
> E invece va benissimo :) Grazie
> 
> Visto che conosci cosi bene Outlook,

https://goo.gl/28hrzh O:-)

Seriamente, ci ho giocato tre giorni a dir tanto.
Conosco benino la tecnica delle ricerche in rete e l'inglese,
questo sì, ma se mi togli Google il mio Q.I. apparente scende
di una marea di
punti e torna da dov'era venuto :-D

> ti chiedo qualche info. Lo sto spulciando col visualizzatore oggetti (è una cosa 
> vastissima forse piu di excel) per cercare le opzioni di Conferma Consegna, Conferma Lettura e Priorità Alta.
> Ho trovato le prime due che dovrebbero essere VotingOption o VotingResponse ma non riesco a farle funzionare. Sulla 
> Priority alta non ho ancora trovato nulla ma ci deve essere per cui cerco ancora

Ora sono (non per me...) in una sala d'attesa d'ospedale e col cell
non posso fare più di tanto,  ma al posto tuo darei un'occhiata
a .ReadReceiptRequested e .OriginatorDeliveryReportRequested.

Per la priorità la proprietà giusta dovrebbe essere .Importance.

Altri riferimenti:
https://msdn.microsoft.com/en-us/library/microsoft.office.interop.
outlook.mailitem_properties.aspx
(ti tocca riattaccare il link, temo).

Bye, G.

[toc] | [prev] | [next] | [standalone]


#19214

FromGreg <greg@alicie.com>
Date2017-10-23 15:29 +0200
Message-ID<oskqrh$eh7$1@solani.org>
In reply to#19213
Il 23/10/17 11:49:13 Paperino ha scritto:

> Seriamente, ci ho giocato tre giorni a dir tanto.
> Conosco benino la tecnica delle ricerche in rete e l'inglese,
> questo sì, ma se mi togli Google il mio Q.I. apparente scende
> di una marea di punti e torna da dov'era venuto :-D

E purtroppo il mio inglese è poca cosa e Google, ormai da qualche tempo è molto orientato sui bisogni AdWord :(
>
>> ti chiedo qualche info. Lo sto spulciando col visualizzatore oggetti (è una cosa 
>> vastissima forse piu di excel) per cercare le opzioni di Conferma Consegna, Conferma Lettura e Priorità Alta.
>> Ho trovato le prime due che dovrebbero essere VotingOption o VotingResponse ma non riesco a farle funzionare. Sulla 
>> Priority alta non ho ancora trovato nulla ma ci deve essere per cui cerco ancora
>
> Ora sono (non per me...) in una sala d'attesa d'ospedale e col cell
> non posso fare più di tanto, 

auguri al paziente :)

> ma al posto tuo darei un'occhiata
> a .ReadReceiptRequested e .OriginatorDeliveryReportRequested.

Perfetto! Erano quelli che cercavo!

> Per la priorità la proprietà giusta dovrebbe essere .Importance.
>
> Altri riferimenti:
> https://msdn.microsoft.com/en-us/library/microsoft.office.interop.
> outlook.mailitem_properties.aspx
> (ti tocca riattaccare il link, temo).

Questo l'avevo trovato, ma ad una lettura veloce, la lista è lunga, a causa del mio inglese mi era sfuggito il 
significato.

Come sempre preziono e disponibile, ti devo un altro caffè. Grazie :)

-- 
Greg

[toc] | [prev] | [next] | [standalone]


#19205

FromFranz_aRTiglio <franzgol@N0SPAMtin.it>
Date2017-10-20 01:25 +0200
Message-ID<osbc75$i03$1@gioia.aioe.org>
In reply to#19201
Greg ha usato la sua tastiera per scrivere :

> Ho bisogno di mandare una mail con Outlook, o meglio, precompilare il tutto e 
> poi lasciare l'invio o meno all'utilizzatore. Per questo vorrei presentargli 
> una mail con il cursore alla fine del testo e non all'inizio. Come fare?
>
> Questo il codice usato:
> mail = "mailto: mirko@gmail.com"
> sog = " ?subject=Invio Mail di prova "
> bod = "&body=Buongiorno, le scrivo per ..."
> s = ShellExecute(0&, vbNullString, mail & sog & bod, vbNullString, "C:\", 
> SW_SHOWNORMAL)

sendkeys "^{END}"

ma DEVI aspettare a dare il comando dopo che la finestra del client
si sia aperta e che sia in primo piano o la combinazione di tasi la
prenderà la finestra attiva, in breve LASCIA PERDERE che e' un
trojajo e accontentati del cursore nel "posto sbagliato", io c'ho
bestemmiato non poco ai tempi, alla fine c'ho rinunciato, azzeccare
il tempo di apertura sperando che l'utonto non "rubi" il focus
cliccando altrove e' una battaglia persa.

[toc] | [prev] | [standalone]


Back to top | Article view | it.comp.lang.visual-basic


csiph-web