2012-07-30 4 views
3

Quelqu'un peut-il m'aider à comprendre le fonctionnement de MAPI? J'ai ce vbscript simple qui utilise MAPI pour envoyer un email. Cela fonctionne parfaitement bien, mais je ne sais pas comment ça se passe ... que se passe-t-il en arrière-plan?Comment fonctionne ce script (envoi de courrier électronique via Outlook)?

Const ForReading = 1 

Set args = WScript.Arguments 
sqlFile = args.Item(0) 
logFile = args.Item(1) 

Dim ToAddress 
Dim FromAddress 
Dim MessageSubject 
Dim MyTime 
Dim MessageBody 
Dim MessageAttachment 
Dim ol, ns, newMail 
MyTime = Now 

ToAddress = "[email protected]" 
MessageSubject = "Subject goes here" 
MessageBody = "Body message goes here." 
MessageAttachment = ""&logFile&"" 
Set ol = WScript.CreateObject("Outlook.Application") 
Set ns = ol.getNamespace("MAPI") 
Set newMail = ol.CreateItem(olMailItem) 
newMail.Subject = MessageSubject 
newMail.Body = MessageBody & vbCrLf & MyTime 
newMail.RecipIents.Add(ToAddress) 
newMail.Attachments.Add(MessageAttachment) 
newMail.Send 

Merci à l'avance ...

Répondre

2

ce que vous faites dans ce code ci-dessus utilise en fait la version installée d'Outlook pour envoyer le message. Outlook peut très bien utiliser MAPI, mais l'interface API que vous utilisez actuellement est l'automatisation basée sur COM d'Outlook. Un code tel que celui-ci utilisera Outlook pour envoyer des e-mails via n'importe quel système de transport de messagerie qu'Outlook peut être configuré pour utiliser. Cependant, c'est beaucoup de frais généraux juste pour envoyer un message électronique. Selon le (s) serveur (s) de messagerie électronique (s) que vous pourriez avoir sur votre réseau ou par l'intermédiaire de cet outil, il peut y avoir des moyens beaucoup plus efficaces d'envoyer des courriels. Mais si cela fonctionne bien et répond à vos besoins actuellement, ne prenez pas cela pour signifier qu'il y a quelque chose de mal à le faire comme vous l'avez fait ci-dessus. Il s'agit de comprendre les outils à votre disposition et la meilleure façon de les appliquer à votre problème particulier.

Dans votre code, vous contrôlez Outlook et lui indiquez de créer un message électronique. Vous passez le message à Outlook et Outlook utilise en fait le profil configuré pour déterminer comment transférer le message à un serveur Exchange configuré ou à d'autres agents de transport de courrier (mta) installés/configurés.

+0

Pouvez-vous expliquer ce qu'est COM d'une manière simple? :) – duper

+0

Voici plein de détails sur COM sur wikipedia. http://en.wikipedia.org/wiki/Component_Object_Model – dmarietta

+0

Comment puis-je utiliser ce script? – Mowgli

Questions connexes