颤振电子邮件发送器

R. *_*nez 8 email flutter

当我从 flutter 中的表单发送电子邮件时出现此错误。

Unhandled Exception: PlatformException(UNAVAILABLE, defualt mail app not available, null)
Run Code Online (Sandbox Code Playgroud)
class _MyAppState extends State<MyApp> {
  List<String> attachment = <String>[];
  TextEditingController _subjectController =
      TextEditingController(text: 'ct');
  TextEditingController _bodyController = TextEditingController(
      text: '''  a
  ''');
  final GlobalKey<ScaffoldState> _scafoldKey = GlobalKey<ScaffoldState>();
  // Platform messages are asynchronous, so we initialize in an async method.
  Future<void> send() async {
    // Platform messages may fail, so we use a try/catch PlatformException.
    final MailOptions mailOptions = MailOptions(
      body: 'Ro',
      subject: 'the Email Subject',
      recipients: ['rodrigo@houlak.com'],
      isHTML: true,

      attachments: [ 'path/to/image.png', ],
    );

    await FlutterMailer.send(mailOptions);

    String platformResponse;

    try {
      await FlutterMailer.send(mailOptions);
      platformResponse = 'success';
    } catch (error) {
      platformResponse = error.toString();
    }

    if (!mounted) return;
    _scafoldKey.currentState.showSnackBar(SnackBar(
      content: Text(platformResponse),
    ));
  }
Run Code Online (Sandbox Code Playgroud)

小智 6

在 AndroidManifest.xml 中添加此内容可以解决 Android 上的问题:

<application .... />
// add queries tag for mailto intent out side of application tag
<queries>
  <intent>
    <action android:name="android.intent.action.SENDTO" />
    <data android:scheme="mailto" />
  </intent>
</queries>
Run Code Online (Sandbox Code Playgroud)


小智 5

我在 iPhone 上遇到了同样的问题,这是因为我没有设置默认的 iOS 默认邮件应用程序。