[flutter] 플러터에서 훅(hook)을 이용하여 메일 전송 기능 구현하기

플러터(Flutter)는 구글이 개발한 크로스 플랫폼 모바일 애플리케이션 개발 프레임워크로, 훅(hook)을 이용하여 상태 관리를 간편하게 할 수 있습니다. 이번 글에서는 플러터에서 훅을 이용하여 메일 전송 기능을 구현하는 방법에 대해 알아보겠습니다.

1. 이메일 전송 라이브러리 추가

우선, 플러터 앱에 메일 전송 기능을 구현하기 위해 mailer 라이브러리를 추가해야 합니다. pubspec.yaml 파일에 다음과 같이 의존성을 추가합니다:

dependencies:
  flutter:
    sdk: flutter
  mailer: ^4.0.1

의존성을 추가한 후에는 pub get 명령을 실행하여 라이브러리를 다운로드 받아야 합니다.

2. 훅(Hook)을 이용한 이메일 전송 함수 작성

이제, mailer 라이브러리를 사용하여 이메일을 전송하는 함수를 작성해보겠습니다. 플러터에서는 flutter_hooks 라이브러리를 사용하여 훅을 구현할 수 있습니다. 다음은 훅을 이용하여 이메일을 전송하는 함수 예시입니다:

import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:mailer/mailer.dart';
import 'package:mailer/smtp_server.dart';

Future<void> sendEmail(String recipient, String subject, String body) async {
  final smtpServer = gmail('your.email@gmail.com', 'yourpassword');
  final message = Message()
    ..from = Address('your.email@gmail.com', 'Your Name')
    ..recipients.add(recipient)
    ..subject = subject
    ..html = body;

  try {
    final sendReport = await send(message, smtpServer);
    print('Message sent: ' + sendReport.toString());
  } on MailerException catch (e) {
    print('Message not sent.');
    for (var p in e.problems) {
      print('Problem: ${p.code}: ${p.msg}');
    }
  }
}

위 코드에서 sendEmail 함수는 mailer 라이브러리를 사용하여 이메일을 전송합니다.

3. 마치며

위 방법을 통해, 플러터에서 훅을 이용하여 메일 전송 기능을 구현할 수 있습니다. 훅을 사용하면 상태 관리가 간편해지고 코드가 간결해지는 장점이 있습니다.

참고 문헌: