avdhesh maurya
avdhesh maurya

Reputation: 115

QTP, send mailer address

I am sending an email using the QTP outlook object model.

Here is the piece of code.

'Create an object of type Outlook
   Set objOutlook = CreateObject("Outlook.Application")
   Set myMail = objOutlook.CreateItem(0)

'Set the email properties
   myMail.To = "[email protected]"
   myMail.CC = "[email protected]; [email protected]" 'Sending mails to multiple ids
   myMail.BCC = "" 'If BCC is not required, then this line can be omitted
   myMail.Subject = "Sending mail from MS Outlook using QTP"
   myMail.Body= "Test Mail Contents"
   myMail.Attachments.Add("D:\Attachment.txt") 'Path of the file to be attached

'Send the mail
   myMail.Send

Now I needed to retrieve the sender email address & store it in an environment variable. myMail.Sender or myMail.sendermailaddres both of them are not working me.

Upvotes: 0

Views: 278

Answers (1)

Dave
Dave

Reputation: 4356

The following code will give you the first email address the user you're connected to Outlook has access to:

objOutlook.Session.Accounts.Item(0)

I use a loop to find the account I want to send from like this:

iAccount = 0
For iLoop = 1 To oOutlook.Session.Accounts.Count
    If UCase(Trim(oOutlook.Session.Accounts.Item(iLoop))) = UCase(Trim(EmailData("SendFrom"))) Then
        iAccount = iLoop
        Exit For
    End If
Next

where EmailData is a Dictionary object containing the items I'm using for the mail item. When creating the mail item I use Set oMailItem.SendUsingAccount = oOutlook.Session.Accounts.Item(iAccount) to specify the account it should be sent from.

Upvotes: 1

Related Questions