Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Mapi e settaggio mittente mail

Domanda trita e ritrita:
Il controllo MAPI (con OE come gestore di posta sottostante) assegna al
mittente l'indirizzo di posta predefinito. Ho cercato, ma non ho trovato
come cambiarlo (anche a costo di usare qualche ape, persino un nero
calabrone).
A questo link 
http://makeashorterlink.com/?H214124E1
 il "vecchio" AlbeV
assegna un valore a MAPIMessage.MsgOrigDisplayName, ma questa proprietà
(come la MsgOrigAddress) è di sola lettura. 8-((
Insomma, come si fa (se si può) a forzare l'indirizzo mail del mittente?
Grazie.

 (come la MsgOrigAddress) è di sola lettura. 8-((
Intanto grazie per il "vecchio".
In effetti la function che avevo postato presenta questo problema. Devo dire
che nei miei test non avevo mai forzato un mittente, per cui non mi ero
accorto del bug.
Oltre a non avere risolto questa cosa (in realtà non ci ho neppure
lavorato), adesso mi si presenta anche il problema del warning di windows
dopo aver messo i security update. In pratica, Windows segnala all'utente
che un applicativo ("potenzialmente un virus") sta interagendo col client di
posta, e l'utente può dare OK solo dopo 5 secondi di attesa.
Tu hai riscontrato la stessa cosa?
Ciao
Alberto

 Tu hai riscontrato la stessa cosa?
Sì (almeno con XP). Se fai un giro su NG di XP troverai un tot di post in
tal senso. Credo sia un discorso di protezione introdotto da IE 6 e/o dal
Firewall e/o da qualche opzione. In tutta sincerità non ricordo se basta
attivare/disattivare qualcosa. Cercherò meglio.
Allora ai miei clienti devo dire di posizionare a predefinito il mittente
desiderato? ;-))

 desiderato? ;-))
Questa č stata la mia soluzione.
Ciao
Alberto


Scusate la domanda cretina: non c'è modo di impostare da codice il mittente
predefinito?
Salutoni
Sergio

 predefinito?
La domanda non è affatto cretina. Mi associo. Soluzioni?
PS-OT: Hai ricevuto la mia mail all'indirizzo che vedo qui?

 sapere.
Ho fatto un po' di cross-post. Se mi picchieranno molto, a un certo punto ti
chiederò il cambio.

A futura memoria (nel senso che l'ho letto di corsa e proverň solo piů
tardi):
http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q291387&

 Questa č stata la mia soluzione.
Ho riso troppo presto, porc... zozz...
Ho un cliente che gestisce due aziende e queste hanno indirizzi diversi. Non
posso dirgli di mandare le mail dell'una da una macchina e dell'altra da
un'altra (a dir il vero non so nemmeno, ora, se abbia piů macchine). :-((

 calabrone).
Guardando la documentazione del controllo MAPI session esistono le proprietą
di UserName e password, non č che utilizzando quelle si riesce ad aprire una
sessione con il profilo desiderato? Una cosa tipo:
MapiSession1.Username = "nomeprofilo"
mapisession.newsession = true
mapisession.signon
eccetera
(se ho detto una boiata perdonatemi...)
Salutoni
Sergio

 
http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q291387&
Funziona (OE 6):
Strumenti, Opzioni, Scheda Protezione, togliere la spunta a "Avvisa se altre
applicazioni tentano l'invio di posta con l'account in uso"

 ha scritto nel messaggio
news:EbZj9.4437$e31....@twister2.libero.it...

Già...
Il problema è che sia io che i miei clienti usiamo Outlook 2000, e non OE...
E' su Outlook che non so come fare.
:-(((
Ciao
Alberto

 E' su Outlook che non so come fare.
Può servire:
http://makeashorterlink.com/?Y2CD134E1
Miscellaneous attachment settings...


Gią provato.
Serve per autenticarsi al servizio di posta, altrimenti č beatamente
ignorato.
Nel frattempo mi sono accorto che facendo le prove i miei messaggi di prova
sono usciti senza alcun warning.
E non ricordo di aver impostato niente di particolare.....
Mistero....
Alberto

 E non ricordo di aver impostato niente di particolare.....
Ritiro.
Avevo usato la modalità Prompt=True, per cui davo la conferma in interactive
con Outlook.
alberto

 E non ricordo di aver impostato niente di particolare.....
Rammenta: devono esserci allegati.
Vedi anche l'altro post per Outlook senza Express

 Vedi anche l'altro post per Outlook senza Express
Con gli allegati era un problema noto da tempo, e risolvibile con alcune
impostazioni del client.
il problema che ho adesso si verifica indipendentemente dalla presenza o
meno di allegati (provato), ed č legato a un Security Update di windows. Man
mano che i PC effettueranno questo aggiornamento, i clienti col problema
aumenteranno ....
Ciao
Alberto
Riporto qui sotto un mio post rimasto senza risposta:
Secondo l'articolo che riporto (estratto) qui sotto, applicando gli
aggiornamenti a Outlook č cambiato l'Object Model, in particolare il metodo
send:
--------------------
Q262701 Outlook Object Model Design Changes
Item.Send
When you run a program that uses the Outlook object model to call the Send
method, you receive a warning message. This warning message tells you that a
program is trying to send mail on your behalf and asks if you want to allow
the message to be sent. The warning message contains both a Yes and a No
button, however, the Yes button is not available until five seconds have
passed since the warning message appeared. You can dismiss the warning
message immediately if you click No. When you click No, the Send method
returns an E_FAIL error in the C or C++ programming languages.
----------------------
Quindi, se il mio programma prima poteva creare e mettere in posta in uscita
tutti i messaggi che venivano generati dall'applicazione client dell'utente,
adesso per ogni messaggio occorre premere SI. Il problema č che il tasto SI
diventa abilitato dopo 5 secondi, per cui, se devo inviare 10 messaggi, devo
premere SI per 10 volte, perdendo circa un minuto in maniera molto stupida.
A parte cambiare completamente la procedura di invio delle mail (che nei
miei applicativi si basa sull'uso di MapiSession e MapiMessage), e che mi
tengo come ultima risorsa, qualcuno conosce il workaround per abilitare,
anche solo sui PC degli utenti che fanno queste operazioni molto di
frequente, l'accesso ad Outlook2000 da parte di VB?
Ciao
Alberto

 ignorato.
Scusa, potresti spiegarmi meglio questa cosa? io ho provato dal mio pc a
mandarmi un messaggio selezionando in quel modo un profilo diverso da quello
di default e mi è riuscito (anche se ho fatto qualche casino perchè il
server diceva che non ero autorizzato ad usare la casella di posta del
collega....)
Salutoni
Sergio

 collega....)
Come dicevo, se non è richiesta l'autenticazione, mi sembra che il
MapiSession ignori il parametro UserName.
Situazione classica:
PC con Outlook (express o completo, vedi tu).
Su Outlook, hai due account: User_A e User_B, di cui User_A è il
predefinito.
Se vuoi spedire un messaggio usando User_B come mittente, tu dicevi di fare
MapiSession1.UserName="User_B".
Io ho provato, mettendolo sia prima che dopo il SignOn, e in nessuno dei due
casi ha funzionato, ossia il messaggio è sempre partito con Mittente=User_A.
Ciao
Alberto

 casi ha funzionato, ossia il messaggio è sempre partito con
Mittente=User_A.
Datosi che sono alquanto testardo volevo indagare ulteriormente la
questione: oggi farò qualche altra prova, però volevo chiederti se prima di
fare il signon utilizzavi il Mapisession.newsession = true.
Se così è, questo è uno dei casi in cui "F1" non aiuta più di tanto.....
Salutoni

 Se così è, questo è uno dei casi in cui "F1" non aiuta più di tanto.....
Ieri ho passato qualche ora a cercare con Google. Niente di certo, ma ho la
sensazione che OE non gestisca 'sto benedetto utente o "profile" che dir si
voglia, pare sia necessario O (senza E) e/o Exchange.
Per cortesia, potresti rifare la tua prova e confermare che ti funziona (con
OE, a me basterebbe), pubblicando un po' di codice. In particolare mi
interessa sapere la sequenza delle istruzioni e cosa mettere in .UserName:
L'account di posta che si vede nella scheda Generale delle proprietà
dell'account o il "Nome account" posta in arrivo della scheda Server?
Grazie.

 dell'account o il "Nome account" posta in arrivo della scheda Server?
oopps, forse è qui quanto non ho capito: la macchina su cui lavoro ha
outlook completo....
quella con outlook express non ha vb installato....
quindi potrebbe essere che quello che ho provato è valido per O ma non per
OE...
Ok, per oggi abbiamo abbastanza lavoro.... Ci risentiamo...
Salutoni
Sergio

 Ok, per oggi abbiamo abbastanza lavoro.... Ci risentiamo...
Ho avuto una dritta. In OE occorre creare almeno due identità e in Username
indicare il nome dell'identità prescelta. Verrà utilizzato come mittente
l'account predefinito all'interno della stessa.
Ora provo. Farò sapere.

 Ora provo. Farò sapere.
Niente. Ho creato una "Seconda identità" (con questo nome).
MAPI continua a usare l'account predefinito dell'ultima identità usata in
ordine di tempo, anche se OE è chiuso.
Ma possibile?

 l'account predefinito all'interno della stessa.
Non è che per caso intendevano che occorre configurare due profili di
sistema, e a seconda del profilo che si è scelto all'attivazione di windows
viene utilizzato un mittente piuttosto di un'altro?
Salutoni
Sergio

 viene utilizzato un mittente piuttosto di un'altro?
No, vedi il problema è molto semplice:
Io, utente, ho due aziende, la A e la B, gestite su di un'unica macchina.
Come faccio, dalla stessa procedura applicativa (che quel pazzo di Lupo ha
avuto la sventura di installarmi) a spedire mail con mittente corrispondente
alla ditta A o con mittente corrispondente alla ditta B?
Il suggerimento che mi è stato dato è "crea due identità in Outlook e da
codice, quando prepari il MAPISession, metti in .UserName il nome
dell'identità desiderata". Non va, nel senso che, comunque, il mittente
usato è quello relatico all'account predefinito dell'ultima identità usata
in OE, anche se questo è assolutamente chiuso.
Quello che mi chiedo è "Possibile che nessuno abbia mai avuto questo
problema?"
Sergio, non ti dannare. Grazie per quanto hai fatto.

 Sergio, non ti dannare. Grazie per quanto hai fatto.
E io mi danno invece.....
Nel programma regedit, nella cartella HKEY_CURRENT_USER, c'č la cartella
Microsoft, all'interno di questa ce n'č una che si chiama windows messaging
subsystem, in cui č contenuta una cartella profiles, a questo punto c'č una
voce che recita
DefaultProfile = "PincoPallo"
Non č che cambiando quel dato (che io non so come fare a cambiare ma tu
sicuramente sě) otteniamo quanto richiesto?
Salutoni, spero di leggere domani un post con scritto BINGO!!!!
Sergio

 Salutoni, spero di leggere domani un post con scritto BINGO!!!!
Quando lo scopro puoi starne certo, ma in questo momento sono a 0 come idee
(forse le API...)

 come ditta A o ditta B.
Mi permetto di dissentire: cambiare la voce di registro sopra indicata,
equivale a aprire l'utilità di "posta elettronica" presente nel pannello di
controllo, e modificare l'utente di default.
Il problema, a questo punto, è che funzionerà solo con outlook completo.....
Salutoni
Sergio

 (forse le API...)
Gia' provato io con outlookko expresso, niente da fare :(
Lokar
--
Sito Comune: 
http://www.it-lang-vb.net/
Manifesto: 
http://www.it-lang-vb.net/docs/Manifesto.txt

 Gia' provato io con outlookko expresso, niente da fare :(
Grazie Lokar, mi hai risparmiato un bel po' di ricerche e lavoro.
Comunque, peccato.

 Il problema, a questo punto, è che funzionerà solo con outlook
completo.....
Allora, dato per scontato che sono piuttosto testardo....
sempre nella cartella HKEY_CURRENT_USER, c'è la cartella Identities, che è
quella che usa OE per salvare le varie identità configurate, in questa
cartella sono presenti le voci:
Default user id
Last user id
Modificando manualmente il contenuto di queste voci, sono riuscito a
modificare l'identità con la quale si avvia outlook express. Non ho provato
da codice perchè
a) non ho VB installato sulla macchina che ha OE
b)non so come modificare quelle voci
Sono abbastanza convinto del fatto che lì c'è la soluzione del problema (se
non ne hai trovata un'altra nel frattempo)
Salutoni
Sergio

 da codice
Ho provato io, ma nascono casini indicibili.
Ti ho mandato una mail con l'esempio.
Quando sarà funzionante, se mai accadrà... lo metterò ovviamente anche qui,
magari sul SC.
Assolutamente privo di ulteriori idee, sono persino riuscito a crospostare
sulla "concorrenza".
Sob!