Laravel 10과 AWS SES를 이용하기 위한 설정 가이드
1단계: AWS SDK for PHP 설치
composer require aws/aws-sdk-php
2단계: AWS SES 설정
AWS SES를 사용하여 이메일을 보내려면 AWS SES 계정을 설정하고 이메일 주소나 도메인을 인증 필요.
참고: 아직 완료하지 않은 경우, '샌드박스' 모드로 발송에 제한이 있음. 보낼 수 있는 메일의 용량과 속도가 크게 제한되며, 모든 수신자가 SES에서 인증을 받아야 함.
3단계: Laravel에서 AWS SES 구성
Laravel 프로젝트의 config/services.php
수정. AWS SES 인증 정보를 추가
// config/services.php
return [
// 다른 서비스 구성...
'ses' => [
'key' => env('AWS_SES_KEY'),
'secret' => env('AWS_SES_SECRET'),
'region' => env('AWS_SES_REGION'),
],
];
4단계: 환경 변수 설정
.env
파일에 AWS SES 인증 정보를 추가. (IAM)
MAIL_MAILER=smtp
MAIL_HOST=aws_smtp_host
MAIL_PORT=587
MAIL_USERNAME=aws_ses_key
MAIL_PASSWORD=aws_ses_secret
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=발신자_이메일_주소
MAIL_FROM_NAME=발신자명
AWS_SES_KEY=aws_ses_key
AWS_SES_SECRET=aws_ses_secret
AWS_SES_REGION=aws_ses_region
5단계: 메일 설정
이메일 전송을 위해 SES 드라이버를 사용하도록 config/mail.php
파일 수정
// config/mail.php
return [
// 다른 메일 구성...
'mailers' => [
'ses' => [
'transport' => 'ses',
],
],
// 다른 메일 구성...
];
6단계: Mailable 클래스 생성
Laravel 프로젝트에서 Mailable 클래스를 생성
php artisan make:mail WelcomeEmail
7단계: Mailable 클래스 구현
app/Mail
디렉토리에 있는 WelcomeEmail.php
파일을 열고 이메일 내용과 설정을 정의
// app/Mail/WelcomeEmail.php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class WelcomeEmail extends Mailable
{
use Queueable, SerializesModels;
public function build()
{
return $this->from('sender@example.com')
->view('emails.welcome')
->with([
'name' => '수신자 이름',
]);
}
}
8단계: 이메일 템플릿 생성
resources/views/emails
디렉토리 안에 이메일 템플릿 파일(예: welcome.blade.php
)을 생성.
9단계: 이메일 발송
이제 컨트롤러나 애플리케이션의 다른 부분에서 생성한 Mailable 클래스를 사용하여 이메일을 발송 가능
use Illuminate\Support\Facades\Mail;
use App\Mail\WelcomeEmail;
Mail::mailer('ses')->to('recipient@example.com')->send(new WelcomeEmail());
'recipient@example.com'
을 실제 수신자의 이메일 주소로 변경.
'IT > 라라벨' 카테고리의 다른 글
[Laravel] Laravel 에서 middleware 는 어떻게 동작하는가 (0) | 2024.09.17 |
---|---|
[Laravel] Facade, Singleton 그리고 alias (0) | 2024.09.03 |
[laravel] Laravel 의 중첩 트랜잭션 관리기법 (0) | 2024.07.01 |
[laravel] 유니코드 정규화 패키지 (0) | 2024.03.07 |
[laravel] 라라벨 여러 row 한번에 업데이트 하는 법 mass update (0) | 2024.01.10 |