Newsgroup: it.comp.lang.visual-basic
Titolo: [MAPI] campo "To" vuoto

La mia applicazione apre un nuovo messaggio e-mail del client di posta
predefinito imitando il "Send To -> Mail Recipient" ("Invia a ->
Destinatario di Posta") del sistema operativo.
Per ottenere questo mi sono appoggiato all'ocx MAPI "on-board" con vb6
(sp5).
Ora, come il "Send To" di window, vorrei che il mio messaggio avesse il
campo "To" vuoto, ma se imposto le proprietà RecipAddress dell'ocx
MAPIMessages a stringa vuota (come qui sotto) ottengo l'errore "32025:
Invalid recipients".
Ho provato anche ad usare caratteri "strani" come chr(0), vbCr, vbLf, " ",
chr(255), ma non ho ottenuto nulla di positivo.
Come posso fare?
[...]
  MAPIMessages1.RecipIndex = .mm.RecipCount
  MAPIMessages1.RecipType = mapToList
  MAPIMessages1.RecipAddress = ""
  MAPIMessages1.RecipDisplayName = ""
[...]
  MAPIMessages1.Send True ' ERRORE!!!!
[...]
--
.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo
                         zMatteo
.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo
AntiSpam: rimuovere i ^ dall'indirizzo di e-mail

 campo "To" vuoto
Domanda: Perchè vuoi che il "To" sia vuoto?
Tua Risposta: ... Occhio!!!

 wrote in message
news:bcckho$he1q8$1...@ID-174464.news.dfncis.de...

Perchè, come il "Send To" di window, all'apertura del messaggio non so
ancora chi verrà inviata la mail.
PS cosa intendi con la scritta "Tua Risposta: ... Occhio!!!"?

 PS cosa intendi con la scritta "Tua Risposta: ... Occhio!!!"?
Intendo dire che "se stai facendo qualcosa che spamma a cani e porci tramite
qualche servizio/strumento", ... occhio che qui ti si sgama alla svelta!

 wrote in message
news:bccl8n$hu2v7$1...@ID-174464.news.dfncis.de...

Niente spam... dai, bisogna essere un po' sfigati per mettersi a rompere i
cog.....ni alla gente con della posta del c....o.
Ma veniemo alle cose serie: se usi il metodi ".Send" con il parametro "True"
dell'ocx mapi, vedrai che il messaggio non viene inviato, ma ti si apre la
finestra del client di posta predefinito col nuovo messaggio di posta. Ora
l'utente ha a disposizione tutte le funzionalità del suo programa di posta.
Il problema è che se non metti niente nel campo "To" ti salta fuori il
messaggio di errore di cui prima (per esempio prendere il progettino
"MailOE" - o "OEMail" - dal sito comune - effettuando una ricerca "Full
Text" - e modificare la riga ".Send" in ".Send True" e vedere cosa
succede!!)

 succede!!)
Non ho verificato, ma ti credo assolutamente e mi torna pure: Immagino che i
controlli che il gestore di posta sottostante effettua prima di archiviare
una mail (che la spedisca subito o meno) siano tali da dire "qui manca
qualcosa di fondamentale, per cui m'arrabbio".
Potresti metterci un destinatario x...@yyy.zzz in modo (anche se sei in linea
e la posta viene inviata, ... di fatto non lo sarà) che la mail venga
"archiviata", poi l'operatore, con comodo, metterà il destinatario corretto.

 Invalid recipients".
Da me funziona benissimo.
W2k Pro SP3
Outlook 2000 SP3
VB6 SP5
Che client di posta usi?
Ciao
Alberto

 wrote in message
news:O5lGa.86011$Ny5.2...@twister2.libero.it...

W2k Pro SP2 English
Outlook Express 6 SP??? (ma me lo fa anche con Outlook 2000 SR-1)
VB6 SP5

 VB6 SP5
Strano...
Ultimo tentativo: non è che hai Norton Antivirus?
Alberto
-- 
Santo cielo, Magnum, si può sapere cos'è questo baccano?
Higgins, posso spiegarle...
Credo non sia necessario.
Zeus, Apollo, a voi...


ma vaf...................... non a voi, ma a chi a scritto gli ocx MAPI....
Allora, la situazione è questa:
io scrivo anche un file di log e il mio codice era questo:
    ' TO
    LogLine = LogLine & "TO="
    If UBound(Options.MailTO) > -1 Then
      .mm.RecipIndex = .mm.RecipCount
      .mm.RecipType = mapToList
      .mm.RecipAddress = ""
    End If
    LogLine = LogLine & .mm.RecipAddress & "; "
e non andava.
é bastato commentare una linea e tutto si è risolto!!
    ' TO
    LogLine = LogLine & "TO="
    If UBound(Options.MailTO) > -1 Then
      .mm.RecipIndex = .mm.RecipCount
      .mm.RecipType = mapToList
      .mm.RecipAddress = Group(Options.MailTO,
Options.MailRecipientSeparator)
      .mm.RecipAddress = "smtp:" & .mm.RecipAddress
    End If
'    LogLine = LogLine & .mm.RecipAddress & "; "   '<<---------- ECCO LA
LINEA BASTARDA!!!
Infatti al  "Property Get RecipAddress", se non è stato impostato un
recipient, l'ocx MAPI si imputtana: non genera un errore, ma al metodo Send
ti manda a quel paese!!
Grazie a tutti comunque!!!