Pages

Friday, April 19, 2013

How to Send Email in Windows Store Apps


Introduction
Today we are going to explain how to send an email in windows store apps using IMAP component. IMAP component is an first email component for windows store apps that allows to receive emails and process email messages in Windows Store Applications. Includes SMTP component for sending emails from Windows Store Applications.
Step 1
Firstly download IMAP component ( MailForWindowsStore.dll ) from following link.
Step 2
Now open visual studio 2012 and start New windows store apps project.
Step 3
In this step add reference "MailForWindowsStore.dll" in your project.
Add-Reference-Windows-Store-Apps.png
Step 4
Now go on "MainPage.xaml" page and following code.
<Page
    x:Class="MailApp.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:MailApp"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
        <TextBox HorizontalAlignment="Left" TextWrapping="Wrap" x:Name="FromText" VerticalAlignment="Top"Margin="586,68,0,0" Width="302"/>
        <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="From" FontSize="20"VerticalAlignment="Top" Margin="510,76,0,0"/>
        <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="To" FontSize="20"VerticalAlignment="Top" Margin="510,136,0,0"/>
        <TextBox HorizontalAlignment="Left" TextWrapping="Wrap" x:Name="ToText" VerticalAlignment="Top"Margin="586,136,0,0" Width="302"/>
        <TextBox HorizontalAlignment="Left" TextWrapping="Wrap" x:Name="SubText" VerticalAlignment="Top"Margin="586,217,0,0" Width="302"/>
        <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="Subject" FontSize="20"VerticalAlignment="Top" Margin="490,217,0,0"/>
        <TextBox HorizontalAlignment="Left" TextWrapping="Wrap" x:Name="MsgText" VerticalAlignment="Top"Margin="586,296,0,0" Width="302" Height="175"/>
        <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="Messag" FontSize="20"VerticalAlignment="Top" Margin="490,304,0,0"/>
        <Button Content="Attach File" x:Name="AttachFileBtn" HorizontalAlignment="Left" VerticalAlignment="Top"Margin="586,502,0,0" Click="AttachFileBtn_Click"/>
        <Button Content="Send" x:Name="SendBtn" HorizontalAlignment="Left" VerticalAlignment="Top"Margin="783,502,0,0" Width="105" Click="SendBtn_Click"/>
    </Grid>
</Page>
Step 5
Go on "MainPage.xaml.cs" page and add following namespace.
using Limilabs.Mail;
using Windows.Storage;
using Windows.UI.Popups;
using Limilabs.Client.SMTP;
using Limilabs.Mail.Headers;
using Windows.Storage.Pickers;
Step 6
Here is complete "MainPage.xaml.cs" code.
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Limilabs.Client.SMTP;
using Limilabs.Mail;
using Limilabs.Mail.Headers;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.Storage;
using Windows.Storage.Pickers;
using Windows.UI.Popups;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;

namespace MailApp
{
    public sealed partial class MainPage : Page
    {
        FileOpenPicker FilePick;
        StorageFile AttachFile;

        public MainPage()
        {
            this.InitializeComponent();
        }
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {

        }
        private async void AttachFileBtn_Click(object sender, RoutedEventArgs e)
        {
            FilePick = new FileOpenPicker();
            FilePick.FileTypeFilter.Clear();
            FilePick.FileTypeFilter.Add(".doc");
            FilePick.FileTypeFilter.Add(".png");
            FilePick.FileTypeFilter.Add(".txt");
            FilePick.FileTypeFilter.Add(".jpg");
            AttachFile = await FilePick.PickSingleFileAsync();
        }
        private async void SendBtn_Click(object sender, RoutedEventArgs e)
        {
            MailBuilder myMail = new MailBuilder();
            myMail.Html = MsgText.Text;
            myMail.Subject = SubText.Text;
            await myMail.AddAttachment(AttachFile);
            myMail.To.Add(new MailBox(ToText.Text));
            myMail.From.Add(new MailBox(FromText.Text));
           
            IMail email = myMail.Create();

            try
            {
                using (Smtp smtp = new Smtp())
                {
                    await smtp.Connect("smtp.gmail.com", 587);
                    await smtp.UseBestLoginAsync("Yoy Email ID""Password");
                    await smtp.SendMessageAsync(email);
                    await smtp.CloseAsync();
                    MessageDialog msg = new MessageDialog("Mail has been sucessfully sent");
                    msg.ShowAsync();
                }
            }
            catch (Exception ex)
            {
                MessageDialog msg = new MessageDialog("Error in mail send");
                msg.ShowAsync();
            }
        }    
    }
}
Step 7
Finally run your project and try to send Email.
Result-Windows-Store-Apps.png

No comments:

Post a Comment