[Windows Phone 8]如何呼叫系統的寄信功能

[Windows Phone 8]如何呼叫系統的寄信功能

前言

-------------------------------------------------------------------------------

當我們在開發Windows Phone 8應用程式時,如果要加入一個頁面

讓使用者可以呼叫系統裡面的功能直接發送Email,該如何去完成呢?

下面將為大家介紹如何去實現此功能喔!

 

背景知識

-------------------------------------------------------------------------------

//建立物件

Microsoft.Phone.Tasks.EmailComposeTask 物件 = new Microsoft.Phone.Tasks.EmailComposeTask();

上面物件提供下列成員(屬性或方法)可用來指定寄信資訊

To屬性:收件人地址

Cc屬性:副本收件人地址

Subject屬性:信件主旨

Body屬性:信件內容

Show()屬性:呼叫系統內建email發送程式

 

EmailComposeTask 是利用系統的"電子郵件"程序發送Email,根據上面不同屬性操作可以呼叫不同功能。

 

實做

---------------------------------------------------------------------------------

1.首先我們先建立一個Windows Phone 8 的新專案

1

2.然後在MainPage.xaml上分別放入3個TextBlock、3個TextBox和1個Button,如圖所示

2

3.修改MainPage.xaml裡面的程式碼,如紅色框框處

3

        <!--TitlePanel 包含應用程式的名稱和頁面標題-->
        <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
            <TextBlock Text="我的應用程式" Style="{StaticResource PhoneTextNormalStyle}" Margin="12,0"/>
            <TextBlock Text="發Email" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
        </StackPanel>

        <!--ContentPanel - 其他內容置於此-->
        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
            <StackPanel>
                <TextBlock  Text="收件人" FontSize="30" />
                
            <TextBox x:Name="txtTo" FontSize="30" TextWrapping="Wrap"/>
                
                <TextBlock Text="主旨" FontSize="30"/>
                
            <TextBox x:Name="txtSubject" FontSize="30" TextWrapping="Wrap"/>
                
            <TextBlock Text="內文" FontSize="30"/>
                
            <TextBox x:Name="txtBody" FontSize="30" TextWrapping="Wrap" Height="200"
                     
                     VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled"/>
                
            <Button Content="傳送" HorizontalAlignment="Left"  VerticalAlignment="Top" Click="btnOK_Click"/>
            </StackPanel>
        </Grid>

4.利用快點Button物件兩下,進入MainPage.xaml.cs頁面並自動產生Button Click事件,

其中if (txtTo.Text == "")… 是做一個簡單的欄位驗證,判斷是否有輸入資料

4

using System;using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
using SendEmail.Resources;
using Microsoft.Phone.Tasks;

namespace SendEmail
{
    public partial class MainPage : PhoneApplicationPage
    {
        // 建構函式
        public MainPage()
        {
            InitializeComponent();          
        }
        private void btnOK_Click(object sender, RoutedEventArgs e)
        {
            if (txtTo.Text == "")
            {
                MessageBox.Show("請輸入收件人Email");
                return;
            }
            if (txtSubject.Text == "")
            {
                MessageBox.Show("請輸入Email主旨");
                return;
            }
            //建立物件
            EmailComposeTask MyEmail = new EmailComposeTask();
            //填入郵件資訊
            MyEmail.To = txtTo.Text;              //收件人地址
            MyEmail.Subject = txtSubject.Text;    //信件主旨
            MyEmail.Body = txtBody.Text;          //信件內容
            //呼叫系統內建email發送程式
            MyEmail.Show();
        }

   
    }
    
}

 

5.實際測試   主頁面

5

假如我們忘記輸入主旨,系統會提示請輸入主旨

6

7

如果我們忘記輸入Email地址的話,系統會提醒請輸入Email

8

9

 

結語

---------------------------------------------------------------------------------------------------------------

看完以上的示範是不是覺得很簡單呢?下次如果有要用到呼叫系統的寄信功能時,

不訪多利用此功能喔! 希望對大家有幫助^_^

 

如果上述有錯誤,請不吝指教喔! 感謝大家

 

 

參考資料

----------------------------------------------------------------------------------------------------------------

How to use the email compose task for Windows Phone