При построении строки будьте осторожны с переносами строк. Лучше использовать \n
, чтобы избежать проблем, и вместо base64Encode
используйте base64Url
. Вот небольшой пример, который показывает закодированное тело:
import 'dart:convert';
void main() {
var content = '''Content-Type: text/html; charset=utf-8\nMIME-Version: 1.0\nContent-Transfer-Encoding: 7bit\nto: user2@domain\nsender: user@domain\nsubject: API test Dart\n\nHi<br/>Html <b>Email</b><br><br>gfdgdfgdfg''';
String encoded = base64Url.encode(utf8.encode(content));
print(encoded);
}
Кроме того, я бы рекомендовал вам проверить Клиентские библиотеки Google API с Dart , это официальная библиотека Dart, предоставленная Google использует свои API.