1 Option Strict Off
2 Imports Microsoft.Office.Core
3 Imports Outlook
4 Imports System
5 Imports System.IO
6 Imports System.Text
7
8 Public Class Form1
9 Inherits System.Windows.Forms.Form
10
11 Const conBasePath As String = "C:\TEMPOUTLOOK\"
12
13 #Region " Windows Form Designer generated code "
14
15 Public Sub New()
16 MyBase.New()
17
18 'This call is required by the Windows Form Designer.
19 InitializeComponent()
20
21 'Add any initialization after the InitializeComponent() call
22
23 End Sub
24
25 'Form overrides dispose to clean up the component list.
26 Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
27 If disposing Then
28 If Not (components Is Nothing) Then
29 components.Dispose()
30 End If
31 End If
32 MyBase.Dispose(disposing)
33 End Sub
34
35 'Required by the Windows Form Designer
36 Private components As System.ComponentModel.IContainer
37
38 'NOTE: The following procedure is required by the Windows Form Designer
39 'It can be modified using the Windows Form Designer.
40 'Do not modify it using the code editor.
41 Friend WithEvents btnRead As System.Windows.Forms.Button
42 Friend WithEvents btnReadFile As System.Windows.Forms.Button
43 <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
44 Me.btnRead = New System.Windows.Forms.Button
45 Me.btnReadFile = New System.Windows.Forms.Button
46 Me.SuspendLayout()
47 '
48 'btnRead
49 '
50 Me.btnRead.Font = New System.Drawing.Font("Bookman Old Style", 11.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
51 Me.btnRead.Location = New System.Drawing.Point(8, 8)
52 Me.btnRead.Name = "btnRead"
53 Me.btnRead.Size = New System.Drawing.Size(392, 48)
54 Me.btnRead.TabIndex = 0
55 Me.btnRead.Text = "Read Mails From Outlook And Save Locally"
56 '
57 'btnReadFile
58 '
59 Me.btnReadFile.Font = New System.Drawing.Font("Bookman Old Style", 11.25!)
60 Me.btnReadFile.Location = New System.Drawing.Point(8, 64)
61 Me.btnReadFile.Name = "btnReadFile"
62 Me.btnReadFile.Size = New System.Drawing.Size(392, 48)
63 Me.btnReadFile.TabIndex = 1
64 Me.btnReadFile.Text = "Read Locally Saved Mails"
65 '
66 'Form1
67 '
68 Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
69 Me.ClientSize = New System.Drawing.Size(416, 118)
70 Me.Controls.Add(Me.btnReadFile)
71 Me.Controls.Add(Me.btnRead)
72 Me.Name = "Form1"
73 Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
74 Me.Text = "Read Outlook Data"
75 Me.ResumeLayout(False)
76
77 End Sub
78
79 #End Region
80
81 Private Sub btnRead_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRead.Click
82
83 'CHECKING FOLDER IS AVAILABLE OR NOT.
84 'IF NOT CREATE IT ELSE DELETE AND CREATE AGAIN
85 IsFolderAvailable()
86
87 'METHOD FOR SAVING ALL MAIL ITEMS IN TO FOLDER.
88 SaveAllMAPIFolderItems()
89
90 End Sub
91
92 #Region " METHOD FOR READING OUTLOOK MAIL ITEMS"
93 'Don't change this code.
94
95 Private Sub SaveAllMAPIFolderItems()
96
97 Dim objOutlook As Outlook.Application
98 Dim objNamespace As Outlook.NameSpace
99 Dim objMAPIFolder As Outlook.MAPIFolder
100 Dim oNS As Outlook.NameSpace
101 Dim oInbox As Outlook.MAPIFolder
102 Dim oItem As Object ' as Outlook.Mailitem
103 Dim oAtt As Outlook.Attachment
104 Dim sSubject As String
105 Dim sType As String
106 Dim sSent As String
107
108 Dim sUniqueFileName As String
109 Dim sUniqueAttFolderName As String
110
111 objOutlook = New Outlook.Application
112 oNS = objOutlook.GetNamespace("MAPI")
113
114 oNS.Logon(ShowDialog:=True, NewSession:=True)
115 'objMAPIFolder = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox)
116 objMAPIFolder = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderSentMail)
117
118
119 Try
120 For Each oItem In objMAPIFolder.Items
121
122 sSubject = oItem.Subject
123
124 'Dim someString As String = sSubject
125 'Dim index As Integer = someString.IndexOf(":")
126 'Dim replaced As String
127
128 'Dim character As Char
129 'For Each character In someString
130 ' If character = ":" Then
131 ' replaced = someString.Replace(":", "")
132 ' End If
133 'Next
134
135
136 'sUniqueFileName = conBasePath + replaced + "_bak_" + System.Guid.NewGuid().ToString
137
138 sUniqueFileName = conBasePath + "bak_" + System.Guid.NewGuid().ToString
139
140 oItem.SaveAs(sUniqueFileName + ".txt", Outlook.OlSaveAsType.olTXT)
141
142 If (oItem.Attachments.Count > 0) Then
143 sUniqueAttFolderName = sUniqueFileName + "_Folder"
144 MkDir(sUniqueAttFolderName)
145
146 For Each oAtt In oItem.Attachments
147 sUniqueFileName = sUniqueAttFolderName + "\" + oAtt.FileName
148 oAtt.SaveAsFile(sUniqueFileName)
149 Next oAtt
150
151 End If
152
153 'End If
154
155 Next oItem
156
157 Catch ex As System.Exception
158 MessageBox.Show(ex.ToString)
159 End Try
160
161 oNS.Logoff()
162
163 MsgBox("Processed", MsgBoxStyle.Information)
164
165 If (MsgBoxResult.OK) Then
166 Me.Close()
167 End If
168
169 End Sub
170
171 #End Region
172
173 #Region "CHECKING FOLDER IS AVAILABLE OR NOT"
174
175 Private Sub IsFolderAvailable()
176
177 Dim objDirInfo As Directory
178
179 If objDirInfo.Exists(conBasePath) = True Then
180
181 Directory.Delete(conBasePath, True)
182 Directory.CreateDirectory(conBasePath)
183
184 Else
185
186 Directory.CreateDirectory(conBasePath)
187
188 End If
189
190
191 End Sub
192
193 #End Region
194
195
196 Private Sub btnReadFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReadFile.Click
197
198 Dim strFileSize As String = ""
199 Dim di As New IO.DirectoryInfo(conBasePath)
200 Dim aryFi As IO.FileInfo() = di.GetFiles("*.txt")
201 Dim fi As IO.FileInfo
202
203 For Each fi In aryFi
204 Dim s As String
205 s = ReadTextFile(conBasePath & "\" & fi.Name)
206 Next
207
208 End Sub
209
210
211 Private Function ReadTextFile(ByVal sFileName As String) As String
212
213 Dim s As String
214
215 Try
216 Dim oFile As FileStream = New FileStream(sFileName, FileMode.Open, FileAccess.Read, FileShare.Read)
217 Dim oReader As StreamReader = New StreamReader(oFile)
218
219 s = oReader.ReadLine
220
221 Dim strLine As String
222
223 Do Until s Is Nothing
224 strLine = oReader.ReadLine
225 MsgBox(strLine)
226 Loop
227
228
229
230 oReader.Close()
231 oFile.Close()
232
233 ReadTextFile = s
234
235 Catch
236
237 ReadTextFile = "Unable to open file."
238
239 End Try
240
241 End Function
242
243
244 End Class