我正在编写一个应该在私人远程数据库中保存一些信息的移动应用程序。 当然,我无法访问我企业的公共网站来实现Web服务。另一方面,我们有一个永久激活的宏的邮箱,当它收到带有预定义主题的电子邮件时,能够激活另一个宏。所以,潜在地,机器人'可以节省我希望它保存的信息。
我不得不考虑不同的解决方案,我选择了一个,但我对我的选择越来越不确定。
无论如何,我的移动应用程序是使用Cordova和Ionic Framework开发的。我没有想要实现一个插件来打开我的用户的邮件客户端,我希望我的邮件能够自动发送。
最后,我发现SendGrid,我想我可以直接在我的移动应用中实现它,但我没有做到(如果有人把它弄,你能告诉我吗?它可以删除我的应用中的一些步骤)
所以我反思在我的过程中放置第三个演员。 PHP看起来是最好的:我已经习惯了,我知道我们可以在定义SMTP时轻松发送电子邮件......太糟糕了我无法在公共网站上实现网络服务我的企业^^
另一种解决方案在我看来:使用Microsoft的Azure服务。所以我创建了一个ASP.net应用程序,其中这是唯一的代码示例。该方法正确发送我的电子邮件(我想要验证的第一件事),但它无法恢复我的表单数据。
我希望在处理数据之前使用Request.Form.Keys
查看它恢复了什么,并且它没有恢复任何内容,所以我不理解。
我终于创建了测试字符串来删除一个正在增长的疑问。我在下一行放了一个断点,我的日期时间是实例化的,看看我的测试中有什么......它并不存在。
这是我可以通过断点看到的错误:
AzureSendgrid.Controllers.HomeController.SendMail() : test value is error CS0103: The name 'test' doesn't exist in the actual context
public void SendMail()
{
//System.Collections.Specialized.NameObjectCollectionBase.KeysCollection test = Request.Form.Keys;
String test = "test";
System.Diagnostics.Debug.Write(test);
DateTime now = DateTime.Now; // Here is a breakpoint
// Create the email object first, then add the properties.
SendGridMessage myMessage = new SendGridMessage();
myMessage.AddTo(emailTo);
myMessage.From = new MailAddress(emailFrom, "Appli Mobile");
myMessage.Subject = "Appli Mobile Testing SendGrid";
myMessage.Text = "Date-Heure d'envoi : " + now.Day + "/" +
now.Month + " " + now.Hour + ":" + now.Minute + ":" + now.Second;
//myMessage.AddAttachment
// Create a Web transport, using API Key
var transportWeb = new Web(api_key)
// Send the email.
//var t = transportWeb.DeliverAsync(myMessage);
}
这个错误非常清楚,如果初始化和使用我的测试变量之间没有一条线,我可以理解它。 如果有人能看到任何东西来帮助我,那就太好了!
对于此邮件中的潜在错误,我很抱歉,我是法国人。