所以我制作了这个应用程序,用户输入密码并登录基本上是一个储物柜。 我希望如果用户忘记了密码,可以将带有重置代码的电子邮件发送到他们在第一次运行应用程序时输入的电子邮件ID。 到目前为止,我发现了EmailComposeTask,但它并不完全符合我的要求。 有没有其他方式我可以发送电子邮件,或有人指出我正确的方向。
答案 0 :(得分:1)
首先,我会在处理用户请求的服务器上执行此操作,而不是在电话本身上执行此操作 - 从安全基础结构开始,有很多原因。但是,让我们说你仍然想要这样做。
EmailComposeTask
对于您的特定情况来说是一个糟糕的选择,因为用户可以在发送消息之前编辑消息的内容。此外,如果其他人没有在设备上携带帐户,但获取设备,则决定重置密码,他将能够快速查看传出的重置代码。
相反,您可以使用像LiveMailMessage这样的库。这给你的是能够以无人值守的方式发送电子邮件,如:
MailMessage mailMessage = new MailMessage();
mailMessage.Email = "test@email.id";
mailMessage.Password = "somePassword";
mailMessage.AccountType = MailMessage.accountType.MicrosoftAccount;
mailMessage.To = "destination@email.id";
mailMessage.Subject = "Reset Link";
mailMessage.Body = "Here is the reset link";
mailMessage.Send();
您可以快速了解这也存在问题的原因 - 您必须保护本地密码存储,因为您需要指定外发邮件帐户的凭据。