send method

  1. @override
Future<bool> send(
  1. MailMessageInterface message
)
override

Sends an email message.

Returns true if successful, false otherwise. May throw exceptions on critical failures.

Implementation

@override
Future<bool> send(MailMessageInterface message) async {
  try {
    _logger.info('📧 Email logged (not sent)');
    _logger.info('  From: ${message.from}');
    _logger.info('  To: ${message.to.join(', ')}');

    if (message.cc.isNotEmpty) {
      _logger.info('  CC: ${message.cc.join(', ')}');
    }

    if (message.bcc.isNotEmpty) {
      _logger.info('  BCC: ${message.bcc.join(', ')}');
    }

    _logger.info('  Subject: ${message.subject}');

    if (_verbose) {
      if (message.textBody != null) {
        _logger.info('  Text Body:');
        _logger.info('    ${message.textBody}');
      }

      if (message.htmlBody != null) {
        _logger.info('  HTML Body:');
        _logger.info('    ${message.htmlBody?.substring(0, 100)}...');
      }

      if (message.attachments.isNotEmpty) {
        _logger.info('  Attachments: ${message.attachments.length}');
        for (final attachment in message.attachments) {
          _logger.info('    - ${attachment.filename}');
        }
      }

      if (message.embedded.isNotEmpty) {
        _logger.info('  Embedded: ${message.embedded.length}');
        for (final embed in message.embedded) {
          _logger.info('    - ${embed.cid}');
        }
      }
    }

    return true;
  } catch (e, stack) {
    _logger.error('Failed to log email: $e\n$stack');
    return false;
  }
}