Add-in for Outlook in C# (Saving the Attachment and adding a url reference to the saved file path as attachment)

StackOverflow https://stackoverflow.com/questions/15222360

Question

I am using VS 2010 & Dot Net Framework 2.0. I have created a project in Extensibility->Shared Add-ins for Outlook. I want to save a file (any file) in my Hard Disk ,deleting that attachment and adding the path of this file as attachment if user clicks on this file it should open that saved file in my HDD. I am able to save a file , delete the attachment but i am not able to save path of the file as attachment Here is the code written for saving and deleting

                if (item is Outlook.MailItem)
                {
                    Outlook.MailItem mi = (Outlook.MailItem)item;
                    if (mi != null)
                    {                            
                        for (int i = 1; i <= mi.Attachments.Count; i++)
                        {
                            string FilePath = @"" + Settings.Default.browseFolderPath + @"\" +
                                mi.Attachments[i].FileName;
                            mi.Attachments[i].SaveAsFile(FilePath);                                
                            mi.Attachments.Remove(i);                                
                            mi.Attachments.Add(creatingLinkToFile(FilePath), Type.Missing, i, Type.Missing);
                            mi.Save();
                        }                           
                    }
                } 


    private string creatingLinkToFile(string url)
    {
        string lnkPath =@"C:\shortcut.lnk";
        WshShellClass shell = new WshShellClass();           
        IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(lnkPath);
        shortcut.TargetPath = @"" + url;
        shortcut.Description = "Trial";
        shortcut.Save();
        return lnkPath;
    }

Please can anybody give me and idea as i have used lnk file but that is not working the outlook.

Was it helpful?

Solution

You can use Enumeration OlAttachmentType which has olByReference as shown below and your done.

mi.Attachments.Add(""+[path of file to Attach Reference], OlAttachmentType.olByReference, i, Type.Missing);
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top