Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

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

Posted on 2009-04-05
3
Medium Priority
?
756 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
ID: 24077316
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 2000 total points
ID: 24081243
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
ID: 24081246
BTW, that code sends the email if it hasn't been sent, too. I forgot to take that out.
0

Featured Post

Important Lessons on Recovering from Petya

In their most recent webinar, Skyport Systems explores ways to isolate and protect critical databases to keep the core of your company safe from harm.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

The core idea of this article is to make you acquainted with the best way in which you can export Exchange mailbox to PST format.
With so many activities to perform, Exchange administrators are always busy in organizations. If everything, including Exchange Servers, Outlook clients, and Office 365 accounts work without any issues, they can sit and relax. But unfortunately, it…
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 …
To add imagery to an HTML email signature, you have two options available to you. You can either add a logo/image by embedding it directly into the signature or hosting it externally and linking to it. The vast majority of email clients display l…
Suggested Courses

971 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