mailto function

Future<bool> mailto({
  1. required String target,
  2. String? cc,
  3. String? bcc,
  4. String? title,
  5. String? body,
})

发送邮件

Implementation

Future<bool> mailto({
  required String target, // 收件人邮箱
  String? cc, // 抄送
  String? bcc, // 密送
  String? title, // 标题(部分邮箱可能不支持中文标题或乱码)
  String? body, // 内容
}) async {
  if (target.isEmptyOrNull()) {
    return false;
  }
  Map<String, String> params = {};
  if (!isEmptyOrNull(cc)) {
    params['cc'] = cc!;
  }
  if (!isEmptyOrNull(bcc)) {
    params['bcc'] = bcc!;
  }
  if (!isEmptyOrNull(title)) {
    params['subject'] = title!.encodeUrl();
  }
  if (!isEmptyOrNull(body)) {
    params['body'] = body!.encodeUrl();
  }
  Uri uri = Uri(
    scheme: 'mailto',
    path: target,
    query: params.entries.map((MapEntry<String, String> e) => '${e.key}=${e.value}').join('&'),
  );
  bool result = await launchUrl(uri);
  'Launch result: $result on ${uri.toString()}'.logI(tag: 'url_launcher_utils');
  return result;
}