Results 1 to 3 of 3

Thread: [FAQ's: OD] How do I save/remove an attachment from an email message?

  1. #1

    Thread Starter
    Super Moderator RobDog888's Avatar
    Join Date
    Apr 2001
    Location
    LA, Calif. Raiders #1 AKA:Gangsta Yoda™
    Posts
    60,713

    [FAQ's: OD] How do I save/remove an attachment from an email message?

    An Outlook email is a MailItem type. This type has an .Attachments collection that also contains a .SaveAsFile and .Delete methods that we can take advantage of to perform our task(s).


    Outlook 2003 and VB 6 Code Example:

    VB Code:
    1. Option Explicit
    2. 'Add a reference to MS Outlook xx.0 Object Library
    3. Private Sub Command1_Click()
    4.  
    5.     Dim oApp As Outlook.Application
    6.     Dim oInbox As Outlook.MAPIFolder
    7.     Dim oEmail As Object
    8.     Dim oAttach As Outlook.Attachment
    9.    
    10.     Set oApp = New Outlook.Application
    11.     'Reference the default Inbox
    12.     Set oInbox = oApp.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
    13.     For Each oEmail In oInbox.Items
    14.         'Make sure its a mailitem and not a meeting request or read receipt etc.
    15.         If oEmail.Class = olMail Then
    16.             'Check if it has any attachments
    17.             If oEmail.Attachments.Count > 0 Then
    18.                 For Each oAttach In oEmail.Attachments
    19.                     oAttach.SaveAsFile "C:\" & oAttach.FileName
    20.                     'Uncomment next line to optionally remove the attachment
    21.                     'oAttach.Delete
    22.                     'oEmail.Save ?
    23.                 Next
    24.             End If
    25.         End If
    26.     Next
    27.     'Clean up
    28.     Set oEmail = Nothing
    29.     Set oInbox = Nothing
    30.     oApp.Quit
    31.     Set oApp = Nothing
    32.    
    33. End Sub
    Last edited by RobDog888; Aug 23rd, 2006 at 04:17 PM.
    VB/Office Guru™ (AKA: Gangsta Yoda®)
    I dont answer coding questions via PM. Please post a thread in the appropriate forum.

    Microsoft MVP 2006-2011
    Office Development FAQ (C#, VB.NET, VB 6, VBA)
    Senior Jedi Software Engineer MCP (VB 6 & .NET), BSEE, CET
    If a post has helped you then Please Rate it!
    Reps & Rating PostsVS.NET on Vista Multiple .NET Framework Versions Office Primary Interop AssembliesVB/Office Guru™ Word SpellChecker™.NETVB/Office Guru™ Word SpellChecker™ VB6VB.NET Attributes Ex.Outlook Global Address ListAPI Viewer utility.NET API Viewer Utility
    System: Intel i7 6850K, Geforce GTX1060, Samsung M.2 1 TB & SATA 500 GB, 32 GBs DDR4 3300 Quad Channel RAM, 2 Viewsonic 24" LCDs, Windows 10, Office 2016, VS 2019, VB6 SP6

  2. #2

    Thread Starter
    Super Moderator RobDog888's Avatar
    Join Date
    Apr 2001
    Location
    LA, Calif. Raiders #1 AKA:Gangsta Yoda™
    Posts
    60,713

    Re: [FAQ's: OD] How do I save/remove an attachment from an email message?

    Outlook 2003 And VB.NET 2003 Code Example:
    VB Code:
    1. Option Explicit On
    2. Option Strict On
    3. 'Add a reference to MS Office Outlook xx.0 Object Library
    4. Imports Microsoft.Office.Interop
    5.  
    6. Public Class Form1
    7.  
    8.     Inherits System.Windows.Forms.Form
    9.  
    10.     [color=dimgray]"Windows Form Designer generated code"[/color]
    11.  
    12.     Private moApp As Outlook.Application
    13.  
    14.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    15.         Try
    16.             moApp = DirectCast(GetObject(, "Outlook.Application"), Outlook.Application)
    17.         Catch ex As Exception
    18.             If TypeName(moApp) = "Nothing" Then
    19.                 moApp = DirectCast(CreateObject("Outlook.Application"), Outlook.Application)
    20.             Else
    21.                 MessageBox.Show(ex.Message, "VB/Office Guru™ Outlook Attachment Demo .NET", _
    22.                 MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
    23.                 btnSave.Enabled = False
    24.             End If
    25.         End Try
    26.     End Sub
    27.  
    28.     Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
    29.         Dim oInbox As Outlook.MAPIFolder
    30.         Dim oEmail As Object
    31.         Dim oAttach As Outlook.Attachment
    32.  
    33.         'Reference the default Inbox
    34.         oInbox = moApp.GetNamespace("MAPI").GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox)
    35.         For Each oEmail In oInbox.Items
    36.             'Make sure its a mailitem and not a meeting request or read receipt etc.
    37.             If CType(oEmail, Outlook.MailItem).Class = Outlook.OlObjectClass.olMail Then
    38.                 'Check if it has any attachments
    39.                 If CType(oEmail, Outlook.MailItem).Attachments.Count > 0 Then
    40.                     For Each oAttach In CType(oEmail, Outlook.MailItem).Attachments
    41.                         oAttach.SaveAsFile("C:\" & oAttach.FileName)
    42.                         'Uncomment next lines to optionally remove the attachment
    43.                         'oAttach.Delete
    44.                         'oEmail.Save ?
    45.                     Next
    46.                 End If
    47.             End If
    48.         Next
    49.         'Clean up
    50.         oAttach = Nothing
    51.         oEmail = Nothing
    52.         oInbox = Nothing
    53.     End Sub
    54.  
    55.     Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
    56.         moApp.Quit()
    57.         moApp = Nothing
    58.     End Sub
    59.  
    60. End Class
    VB/Office Guru™ (AKA: Gangsta Yoda®)
    I dont answer coding questions via PM. Please post a thread in the appropriate forum.

    Microsoft MVP 2006-2011
    Office Development FAQ (C#, VB.NET, VB 6, VBA)
    Senior Jedi Software Engineer MCP (VB 6 & .NET), BSEE, CET
    If a post has helped you then Please Rate it!
    Reps & Rating PostsVS.NET on Vista Multiple .NET Framework Versions Office Primary Interop AssembliesVB/Office Guru™ Word SpellChecker™.NETVB/Office Guru™ Word SpellChecker™ VB6VB.NET Attributes Ex.Outlook Global Address ListAPI Viewer utility.NET API Viewer Utility
    System: Intel i7 6850K, Geforce GTX1060, Samsung M.2 1 TB & SATA 500 GB, 32 GBs DDR4 3300 Quad Channel RAM, 2 Viewsonic 24" LCDs, Windows 10, Office 2016, VS 2019, VB6 SP6

  3. #3

    Thread Starter
    Super Moderator RobDog888's Avatar
    Join Date
    Apr 2001
    Location
    LA, Calif. Raiders #1 AKA:Gangsta Yoda™
    Posts
    60,713

    Re: [FAQ's: OD] How do I save/remove an attachment from an email message?

    Outlook 2003 And C# 2003 Code Example:
    Code:
    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;
    using Outlook = Microsoft.Office.Interop.Outlook;
    ///using Outlook = Microsoft.Office.Core.Outlook;
    
    namespace Outlook_Attachments_CS
    {
    	/// 
    	/// Summary description for Form1.
    	/// 
    	public class Form1 : System.Windows.Forms.Form
    	{
    		/// 
    		/// Required designer variable.
    		/// 
    		private System.ComponentModel.Container components = null;
    
    		private Outlook.Application moApp;
    
    		public Form1()
    		{
    			//
    			// Required for Windows Form Designer support
    			//
    			InitializeComponent();
    		}
    
    		/// 
    		/// Clean up any resources being used.
    		/// 
    
    		"Windows Form Designer generated code"
    
    		/// 
    		/// The main entry point for the application.
    		/// 
    		[STAThread]
    		static void Main() 
    		{
    			Application.Run(new Form1());
    		}
    
    		private void Form1_Load(object sender, System.EventArgs e)
    		{
    			moApp = new Outlook.Application();
    		}
    
    		private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
    		{
    			moApp.Quit();
    			moApp = null;
    		}
    
    		private void btnSave_Click(object sender, System.EventArgs e)
    		{
    			Outlook.MAPIFolder oInbox;
    			///Reference the default Inbox
    			oInbox = moApp.GetNamespace("MAPI").GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);
    			foreach (Outlook.MailItem oEmail in oInbox.Items) 
    			{
    				///Make sure its a mailitem and not a meeting request or read receipt etc.
    				if (((Outlook.MailItem)(oEmail)).Class == Outlook.OlObjectClass.olMail) 
    				{ 
    					///Check if it has any attachments
    					if (((Outlook.MailItem)(oEmail)).Attachments.Count > 0) 
    					{ 
    						foreach (Outlook.Attachment oAttach in ((Outlook.MailItem)(oEmail)).Attachments) 
    						{ 
    							oAttach.SaveAsFile(@"C:\" + oAttach.FileName);
    							///Uncomment next lines to optionally remove the attachment
    							///oAttach.Delete
    							///oEmail.Save
    						} 
    					} 
    				} 
    			}
    			oInbox = null;
    		}
    	}
    }
    Last edited by RobDog888; Apr 20th, 2007 at 04:23 AM.
    VB/Office Guru™ (AKA: Gangsta Yoda®)
    I dont answer coding questions via PM. Please post a thread in the appropriate forum.

    Microsoft MVP 2006-2011
    Office Development FAQ (C#, VB.NET, VB 6, VBA)
    Senior Jedi Software Engineer MCP (VB 6 & .NET), BSEE, CET
    If a post has helped you then Please Rate it!
    Reps & Rating PostsVS.NET on Vista Multiple .NET Framework Versions Office Primary Interop AssembliesVB/Office Guru™ Word SpellChecker™.NETVB/Office Guru™ Word SpellChecker™ VB6VB.NET Attributes Ex.Outlook Global Address ListAPI Viewer utility.NET API Viewer Utility
    System: Intel i7 6850K, Geforce GTX1060, Samsung M.2 1 TB & SATA 500 GB, 32 GBs DDR4 3300 Quad Channel RAM, 2 Viewsonic 24" LCDs, Windows 10, Office 2016, VS 2019, VB6 SP6

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width