如何知道电子邮件是否真的发送了(使用flutter_email_sender)

0dxa2lsx  于 2022-12-24  发布在  Flutter
关注(0)|答案(1)|浏览(130)

我正在使用flutter_email_sender。我的应用程序有一个屏幕,用户可以在其中输入姓名等信息,然后单击文本按钮,将其重定向到手机中的电子邮件应用程序(如Gmail),在该应用程序中,使用之前输入的信息预先编写的消息已经出现在电子邮件正文中。我的问题是:
一旦用户发送了电子邮件并被重定向回我的应用程序,我希望显示一个对话框,内容沿着为“您的电子邮件已成功发送!"。为此,我只需在flutter_email_sender的异步函数被调用后添加一个对话框。问题是,如果用户没有发送电子邮件,而是简单地返回应用程序,因为函数调用成功,所以成功对话框仍然出现。但是这个人 * 没有 * 发送电子邮件,所以它不应该出现。有没有办法让我跟踪用户是否 * 确实 * 发送了电子邮件,然后只显示对话框?
正如我上面所说的,我只是在调用函数后返回一个AlertDialog...

await FlutterEmailSender.send(email);
Future<void> showSuccessDialog() async {
return showDialog(
  context: context,
  barrierDismissible: false, 
  builder: (BuildContext context) {
    return AlertDialog(
      title: const Text('Success!!'),
      content: SingleChildScrollView(
        child: ListBody(
          children: [
            const Text('Your email has been sent.'),
          ],
        ),
      ),
      actions: [
        TextButton(
          onPressed: () {
            Navigator.of(context).pop();
          }, 
          child: const Text('Ok'),
        ),
      ],
    );
  }
);
}
showSuccessDialog();

...但这会导致成功对话框出现,即使该人实际上还没有发送电子邮件,只要该功能成功地将他们重定向到电子邮件应用程序。

wgeznvg7

wgeznvg71#

这似乎是不可能的。FlutterEmailSender.send()void结束,因此调用方没有可用的信息。

相关问题