从Windows Phone 7应用程序发送电子邮件

时间:2014-02-17 07:50:51

标签: c# windows-phone-7

在我的Windows Phone 7应用程序中,我想发送一封电子邮件,其中邮件正文应包含我的应用程序中上一页的数据。以前我只是整合了这样的电子邮件设施:

private void Image_Email(object sender, RoutedEventArgs e)
{
    EmailComposeTask emailComposeTask = new EmailComposeTask();

    emailComposeTask.Subject = "message subject";
    emailComposeTask.Body = "message body";
    emailComposeTask.To = "recipient@example.com";
    emailComposeTask.Cc = "cc@example.com";
    emailComposeTask.Bcc = "bcc@example.com";
    emailComposeTask.Show();
}

但是我无法在我的模拟器中测试它。现在在body部分,我想要上一页的数据。那怎么做呢?

更新的代码:

if (this.NavigationContext.QueryString.ContainsKey("Date_Start"))
{
    //if it is available, get parameter value
    date = NavigationContext.QueryString["Date_Start"];
    datee.Text = date;
}

if (this.NavigationContext.QueryString.ContainsKey("News_Title"))
{
    //if it is available, get parameter value
    ntitle = NavigationContext.QueryString["News_Title"];
    title.Text = ntitle;
}

if (this.NavigationContext.QueryString.ContainsKey("News_Description"))
{
    ndes = NavigationContext.QueryString["News_Description"];
    description.Text = ndes;
}

现在我在邮件正文中写什么?我无法测试它,因为我没有设备。 我可以传递这样的值:

emailComposeTask.Body = "title, ndes, date";

3 个答案:

答案 0 :(得分:1)

我认为代码是正确的。如果你想从上一页传递正文,你需要在页面导航时传递它。并设置emailComposeTask.Body = yourPassedValue。 像这样:

var date;
var title;
var ndes;

emailComposeTask.Body = title + "," + ndes + "," + date;

答案 1 :(得分:1)

您需要像这样编辑邮件正文行:

emailComposeTask.Body = title+" "+ ndes+" "+ date;

答案 2 :(得分:1)

由于您没有设置正确的电子邮件帐户,因此无法在模拟器中测试发送邮件。你也不能在模拟器中进行设置。

Body属性是一个字符串,因此您可以放入任何您想要的内容。

使用以下代码只会生成一个包含该字符串的字符串:

emailComposeTask.Body = "title, ndes, date";

因此,结果邮件将包含一个包含“title,ndes,date”的正文作为文本。如果要使用名为title的局部变量中的值替换标题,则需要使用以下语法:

emailComposeTask.Body = string.Format("{0}, {1}, {2}", title, nodes, date);