Ошибка отправки в Dart
Если хост или порт недоступны, send
завершается с ошибкой. В учебном коде ее ловят,
печатают текст и продолжают работу - например,
выводят служебную метку после блока
try.
Намеренно указывают неверный порт у
SmtpServer для хоста smtp.example.com:
import 'package:mailer/mailer.dart';
import 'package:mailer/smtp_server.dart';
void main() async {
var smtp = SmtpServer(
'smtp.example.com',
port: 9,
username: 'user',
password: 'secret',
);
var message = Message()
..from = Address('writer@local.test')
..recipients.add('reader@local.test')
..subject = 'Will fail'
..text = 'No listener on port 9.';
try {
await send(message, smtp);
print('sent');
} catch (e) {
print(e);
}
}
Строка "sent" не появляется. Вместо нее в
консоли - описание ошибки соединения. Программа
доходит до конца main без необработанного
сбоя.
Укажите порт 9999 у SmtpServer
для smtp.example.com. Перехватите
ошибку в catch и выведите объект
исключения.
Повторите отправку с неверным портом, но после
ошибки выведите "done". Убедитесь, что
метка печатается.