Using TestComplete to Reply to Email

I am trying to find an easy way to reply to email in my inbox using TestComplete.

I'm currently using the code for this, which can be found here http://support.smartbear.com/viewarticle/9022/ in the JScript section.

I managed to create and send an email based on the body and simulate the response. However, this is not enough, since the software under test must have a real answer in order to associate it with a message that was previously sent in order to place it in the correct user mailbox.

Any help would be greatly appreciated. If you need more information, please ask.

+4
source share
2 answers

You can do this without problems by working with Outlook through COM. I modified the sample in the article mentioned to demonstrate how you can do this.

function Test() { Log.Message(replyToMessage2010("account name", "sender email", "Test 1234321", "This is a reply")); } function replyToMessage2010(accountName, senderEMail, eMailSubject, replyText) { var OutlookApplication = Sys.OleObject("Outlook.Application"); var NamespaceMAPI = OutlookApplication.GetNamespace("MAPI"); // Check whether the specified account exists: if (NamespaceMAPI.Accounts.Item(accountName) != null) { NamespaceMAPI.SendAndReceive(false); // Get the "Inbox" folder var inbox = NamespaceMAPI.Folders(accountName).Folders("Inbox"); var items = inbox.Items; for (var i = 1; i < items.Count + 1; i++) { if (items.Item(i).Subject == eMailSubject && items.Item(i).SenderEmailAddress == senderEMail && items.Item(i).UnRead) { var reply = items.Item(i).ReplyAll(); reply.Body = replyText + reply.Body; reply.Send(); return true; } } return false; } else { OutlookApplication.Quit(); return false; } } 
+2
source

I have found the answer. I was pretty dumb in that I thought the MailItem.Reply () method would send an email. However, I found that it should be explicitly sent using MailItem.Send ().

Here is my code:

 //Creates a reply MailItem var replyEmail = currentEmail.Reply(); //Creates a variable on the reply email body var body = replyEmail.Body; //Additional text to add var additionaltext = "Reply to Email Message.\n"; //Start position for insert var startpos = 0; //Inserts additional text to the beginning of the message var fullBody = aqString["Insert"](body, additionaltext, startpos); //Applies the new body to the reply email replyEmail.Body = fullBody; //Sends the new reply replyEmail.Send(); 

The reason for having a new body is because otherwise an empty response is sent.

0
source

Source: https://habr.com/ru/post/1441585/


All Articles