INTRODUCTION:-
One of my clients
required a desk top application that maintains contacts in a database and sends
emails to the contacts in the database.
They have not provided the credentials and the details of mail server. So I created an application that uses outlook
for sending mails by using the credentials preconfigured by the outlook
account. This application can send email
for multiple email accounts and with or without attachments.
FEATURES:-
·
Sending
mails to multiple email accounts at a time.
·
Using
configured outlook credentials.
·
No need
of configuring credentials every time.
·
Sending
mails with attachments.
CODE EXPLANATION:-
Create new project
and add references as follows. These
files can be downloaded or can be achieved by the sample project which is
attached with this article.
- Interop.Microsoft.Office.Core.dll
- Interop.Outlook.dll
Let’s go to code part. Import the following libraries apart from
default
Imports
Microsoft.Office.Interop.Outlook
Imports
Microsoft.Office.Interop
Imports
Microsoft.Office
Imports Microsoft
Here we need to create instances for
outlook application; namespace and the namespace should be configured with the
instance of the outlook application. We need
to configure the outbox i.e., the place
where the sent mail will be saved in our mail folder. Then we need to add credentials for this
account. Here we are not going to give
any credentials because we need to obtain the credentials from the native
outlook application using the code. The
code for this process will be as follows.
Dim ol As
New Outlook.Application()
Dim ns As Outlook.NameSpace
Dim
fdMail As Outlook.MAPIFolder
ns = ol.GetNamespace("MAPI")
ns.Logon(, , True, True)
Now create a new outlook mail item and necessary
fields like subject, body, destination folder for saving the message and the
priority as follows,
Dim newMail As Outlook.MailItem
'gets
defaultfolder for my Outlook Outbox
fdMail = ns.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderOutbox)
'assing
values to the new mail mailitem
newMail =
fdMail.Items.Add(Outlook.OlItemType.olMailItem)
With
newMail
.Subject = txtSubject.Text
.Body = txtBody.Text
.SaveSentMessageFolder = fdMail
.Importance =
Outlook.OlImportance.olImportanceHigh
End
With
Add Mail recipients to the mail item. You can add more than one recipient for
sending the same mail to many recipients as follows.
For Each checkedindex In
chklstboxEmails.CheckedItems
newMail.Recipients.Add(checkedindex.ToString())
'MessageBox.Show(checkedindex.ToString())
Next
Add attachments as follows.
If
(lblAttachmentFile.Text <> "No File
Selected..") Then
Dim
attachments As Outlook.Attachments =
newMail.Attachments
Dim
attachment As Outlook.Attachment
Dim
sourcefile As String
= lblAttachmentFile.Text
Dim
displaytext As String
= sourcefile.Substring(sourcefile.LastIndexOf("\")
+ 1)
Dim
bodylength As String
= newMail.Body.Length
attachment =
attachments.Add(sourcefile, , bodylength + 1, displaytext)
End
If
After that you can send the mail using the
send() method.
newMail.Send()
This is how we can send mails by using the
outlook and outlook preconfigured credentials.
Your comments are valuable for me,Thanking you,
Happy Programming
Super men.
ReplyDelete