Comment obtenir l'adresse e-mail de l'actuel de l'utilisateur connecté?
Je suis nouveau sur VBA et essayer d'obtenir un système automatisé de document word de travail. Pour le moment il y a un Bouton dans le document qui, lorsque vous appuyez sur, le feu d'envoyer un email avec le document en pièce jointe.
Cependant j'ai besoin également d'obtenir l'adresse e-mail de l'utilisateur actuel de l'envoi de l'e-mail, afin que je puisse passer à l'intérieur du document avant de l'envoyer. Mes recherches sur internet n'ont pas eu d'utilisable code qui répond à ma situation. Mon code est ci-dessous.
Set OL = CreateObject("Outlook.Application")
Set EmailItem = OL.CreateItem(olMailItem)
Set Doc = ActiveDocument
Doc.Save
With EmailItem
.Subject = "Requesting Authorization Use Overtime"
.Body = "Please review the following request for overtime" & vbCrLf & _
"" & vbCrLf & _
"Thanks"
.To = "[email protected]"
.Importance = olImportanceNormal
.Attachments.Add Doc.FullName
.Send
End With
Ne sais pas si c'est pertinent, mais lorsque le document est utilisé, l'application Outlook sera toujours ouverte avec un utilisateur connecté. Im utilisé pour avoir l'aide d'intellisense dans ces sortes de situations, donc je peux l'imbécile avec des méthodes et des propriétés, mais il semble y avoir très peu d'aide de la fonctionnalité intellisense.
OriginalL'auteur SikhWarrior | 2014-10-23
Vous devez vous connecter pour publier un commentaire.
Habituellement, l'adresse e-mail est le nom attribué à la Messagerie Outlook Dossiers.
Donc, essayez ceci:
C'est en supposant que vous êtes à l'aide Début de Lier avec la référence de l'objet de définir correctement.
Une autre façon d'accéder à cette info est d'utiliser directement espace de Noms propriétés.
J'espère tout de ce qui précède en quelque sorte aide.
Absolument pas. Le nom de la banque, en particulier dans les anciennes versions d'Outlook, ne contient pas l'adresse e-mail du propriétaire du magasin ou de l'utilisateur courant (qui peut être différent de l'utilisateur si vous avez plus d'un magasin dans le profil).
Oui, pas une très soigné solution, en effet, qui travaille sur des scénarios prédéfinis.
OriginalL'auteur L42
Tout dépend de la définition de "l'utilisateur actuel de l'adresse".
Appication.Session.CurrentUser
(renvoieRecipient
objet). UtilisationRecipient.Address
de la propriété. Notez, cependant, que pour un compte Exchange (Recipient.AddressEntry.Type == "EX"
), vous recevrez un EX de type adresse. Pour récupérer l'adresse SMTP, utilisezRecipient.AddressEntry.GetExchangeUser().PrimarySmtpAddress
. Être préparé à gérer les valeurs null/exceptions en cas d'erreurs. C'est ce que vous aurez très probablement besoin dans votre cas particulier.Sur les MAPI Étendu de niveau (C++ ou Delphi), l'utilisation
IMAPISession::QueryIdentity
(vous pouvez le tester dans OutlookSpy - cliquez sur IMAPISession bouton, puis QueryIdentity). Vous pouvez ensuite lire lePR_ADDRTYPE
de propriété ("EX" vs "SMTP") etPR_EMAIL_ADDRESS
(quandPR_ADDRTYPE
= "SMTP") ou (en cas d'Échange)PR_SMTP_ADDRESS
(de ne pas être présent) etPR_EMS_AB_PROXY_ADDRESSES
(valeurs multiples de la propriété de l'Échange des adresses, y compris tous les proxy (alias) adresses).En cas de pluralité de comptes dans le profil, un email peut être envoyé ou reçu par le biais de multiples comptes. Dans ce cas, l'utilisation
MailItem.SendUsingAccount
(renvoieAccount
objet, peut être null dans ce cas, l'utilisationApplication.Session.CurentUser
). Ceci est valable à la fois pour les reçus, envoyés ou les e-mails étant composé (Application.ActiveInspector.CurrentItem
ouApplication.ActiveExplorer.ActiveInlineResponse
).Tous les comptes dans un profil peut être consulté à l'aide de la
Namespace.Accounts
collection(Application.Session.Accounts
). Du compte de l'adresse peut être consulté à l'aide deAccount.SmtpAddress
de la propriété.Notez que le Modèle d'Objet Outlook expose uniquement les comptes de messagerie. Certains comptes d'achats (comme PST) ne sont pas dans la collection, car ils n'ont pas une valeur intrinsèque de l'identité de l'utilisateur, même si certains autres comptes (tels que POP3/SMTP) peut fournir à ce magasin. Si vous souhaitez accéder à tous les comptes, vous pouvez utiliser Rachat et ses RDOSession.Les comptes de la collection (RDOAccounts objet).
Sur les MAPI Étendu de niveau, les comptes sont exposés par le biais de la IOlkAccountManager interface. Vous pouvez jouer avec elle dans OutlookSpy si vous cliquez sur le IOlkAccountManager bouton.
Owner
propriété.OriginalL'auteur Dmitry Streblechenko
Cette réponse est pour la Fin de la Liaison de sorte que vous n'avez pas besoin d'avoir des bibliothèques de référence. Placez le code suivant dans un module:
OriginalL'auteur James