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

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.

有帮助吗?

解决方案

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);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top