ente/lib/utils/email_util.dart

44 lines
1.2 KiB
Dart
Raw Normal View History

2021-06-12 10:33:24 +00:00
import 'dart:io';
import 'package:archive/archive_io.dart';
2021-05-29 22:48:23 +00:00
import 'package:email_validator/email_validator.dart';
2021-06-12 10:33:24 +00:00
import 'package:flutter/widgets.dart';
import 'package:flutter_email_sender/flutter_email_sender.dart';
import 'package:path_provider/path_provider.dart';
import 'package:photos/utils/dialog_util.dart';
import 'package:share/share.dart';
2021-05-29 22:48:23 +00:00
2020-10-09 21:45:07 +00:00
bool isValidEmail(String email) {
2021-05-29 22:48:23 +00:00
return EmailValidator.validate(email);
2020-10-09 21:45:07 +00:00
}
2021-06-12 10:33:24 +00:00
Future<void> sendLogs(
BuildContext context,
String toEmail, [
String subject,
String body,
]) async {
final dialog = createProgressDialog(context, "preparing logs...");
await dialog.show();
final tempPath = (await getTemporaryDirectory()).path;
final zipFilePath = tempPath + "/logs.zip";
final logsDirectory = Directory(tempPath + "/logs");
var encoder = ZipFileEncoder();
encoder.create(zipFilePath);
encoder.addDirectory(logsDirectory);
encoder.close();
await dialog.hide();
final Email email = Email(
recipients: [toEmail],
subject: subject,
body: body,
attachmentPaths: [zipFilePath],
isHTML: false,
);
try {
await FlutterEmailSender.send(email);
} catch (e) {
await Share.shareFiles([zipFilePath]);
}
}