Solved

Save Active Mail Item in Outlook to Hard Disk (.MSG)

Posted on 2009-04-05
3
722 Views
Last Modified: 2013-11-23
Hi there,

I am using a add-in-express that allows me to build add-ins for MS outlook.  It makes inserting buttons etc really easy in Outlook, but I still need to write the applied code.  I need some assistance to save the currently active mail item to my hard disk when a user clicks a my add-in button inside outlook.

Thanks,

Phillip
0
Comment
Question by:meneerroux
  • 2
3 Comments
 
LVL 14

Expert Comment

by:SteveBay
Comment Utility
Here is an example of outlook automation that I posted some time back. Take a look and see if that gives you the start you need.
http://www.experts-exchange.com/Microsoft/Development/Microsoft_Programming/Q_23216275.html
0
 
LVL 26

Accepted Solution

by:
EddieShipman earned 500 total points
Comment Utility
Here's some code we use on our addin. We use Add-in Express, too, and it is a wonder to work with that tool
as it does tons of work for you.

uses  ..., Outlook2000;
 
 

var

  strTempFilePath: String;

  bSaved: Boolean;

  IMail: _MailItem;

  IExpl: _Explorer;

  ISel: Selection;

begin

  IExpl := FAddin.OutlookApp.ActiveExplorer();

  if Assigned(IExpl) then

  begin

    try

      try

        ISel := IExpl.Selection;

      except

        ISel := nil;

      end;

      if Assigned(ISel) then

      try

        if ISel.Count > 0 then

        begin

          ISel.Item(1).QueryInterface(IID__MailItem, IMail);

          if Assigned(IMail) then

          begin

            try

              strTempFilePath := IMail.Subject + '.msg';

              if FileExists(strTempFilePath) then

                SysUtils.DeleteFile(strTempFilePath);

              strDocDescription := IMail.Subject;

              IMail.SaveAs(strTempFileName, olMSG);

              bSaved := True;

              if not IMail.Sent then

              begin

                IMail.Send;

              end;

            finally

              IMail := nil;

            end;

          end;

        end;

      finally

        ISel := nil;

      end;

    finally

      IExpl := nil;

    end;

  end;

end;  

Open in new window

0
 
LVL 26

Expert Comment

by:EddieShipman
Comment Utility
BTW, that code sends the email if it hasn't been sent, too. I forgot to take that out.
0

Featured Post

Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

Resolve Outlook connectivity issues after moving mailbox to new Exchange 2016 server
This process describes the steps required to Import and Export data from and to .pst files using Exchange 2010. We can use these steps to export data from a user to a .pst file, import data back to the same or a different user, or even import data t…
This Experts Exchange video Micro Tutorial shows how to tell Microsoft Office that a word is NOT spelled correctly. Microsoft Office has a built-in, main dictionary that is shared by Office apps, including Excel, Outlook, PowerPoint, and Word. When …
This video shows how to remove a single email address from the Outlook 2010 Auto Suggestion memory. NOTE: For Outlook 2016 and 2013 perform the exact same steps. Open a new email: Click the New email button in Outlook. Start typing the address: …

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

7 Experts available now in Live!

Get 1:1 Help Now