1. 구글 SMTP 기본 정보
- SMTP 서버: smtp.gmail.com
- 포트: 587 (TLS), 465 (SSL)
- 인증 필요: 네, Gmail 계정과 비밀번호 또는 앱 비밀번호 사용
- 보안: TLS/SSL 필수
2. AWS에서 구글 SMTP 사용 시 주의사항
(1) AWS 보안 그룹 설정
- AWS 인스턴스의 보안 그룹(Security Group) 에서
Outbound(아웃바운드) 규칙에 SMTP 포트 (보통 587 또는 465)로 인터넷 연결 허용 필요 - 예:
- Protocol: TCP
- Port Range: 587 (또는 465)
- Destination: 0.0.0.0/0 (또는 구글 SMTP IP 대역)
(2) VPC 네트워크 ACL 확인
- VPC 네트워크 ACL에서 아웃바운드/인바운드 규칙이 SMTP 포트를 막고 있지 않은지 확인하세요.
(3) AWS EC2 기본 정책 확인
- AWS는 기본적으로 포트 25(기본 SMTP 포트)를 차단하는 경우가 많음 (스팸 방지 목적)
- 587이나 465 포트는 보통 차단하지 않으나, 만약 문제 있으면 AWS 지원에 문의해서 해제 요청 가능
3. Gmail 계정 보안 설정
- 기본적으로 구글은 외부 앱에서 로그인 시 보안을 엄격하게 제한합니다.
- Gmail 계정을 이용할 때는 다음 중 하나 필요:
- 2단계 인증 활성화 후 앱 비밀번호 생성 → Laravel 메일 설정에 앱 비밀번호 사용
- 혹은 "보안 수준이 낮은 앱 허용" (2022년 이후 대부분 막힘)
- 개인 Gmail 계정보다는 G Suite(구 Google Workspace) 계정을 권장합니다.
4. Laravel .env 예시
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=your-email@gmail.com
MAIL_PASSWORD=your-app-password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=your-email@gmail.com
MAIL_FROM_NAME="Your App Name"
1. Artisan 커맨드로 메일 테스트하기 (Laravel 9 이상)
Laravel 9.23부터 내장된 mail:send 명령어로 간단하게 테스트 가능해요.
터미널에서 아래 명령 실행:
php artisan mail:send --to=받는사람이메일@example.com
2. 직접 메일 전송하는 코드 작성하기
(1) 테스트용 Mailable 클래스 만들기
php artisan make:mail TestMail
app/Mail/TestMail.php 파일 열어서 build() 메서드 수정:
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class TestMail extends Mailable
{
use Queueable, SerializesModels;
public function build()
{
return $this->subject('메일 테스트') // 메일 제목
->view('emails.test'); // 뷰 파일 지정
}
}
(2) 메일 뷰 만들기
resources/views/emails/test.blade.php 파일 생성:
<!DOCTYPE html>
<html>
<head>
<title>메일 테스트</title>
</head>
<body>
<h1>이것은 Laravel 메일 테스트입니다.</h1>
<p>메일이 정상적으로 발송되면 잘 작동하는 것입니다.</p>
</body>
</html>
(3) 라우트나 컨트롤러에 테스트용 코드 추가
예: routes/web.php 에 아래 코드 추가:
use Illuminate\Support\Facades\Mail;
use App\Mail\TestMail;
Route::get('/mail-test', function () {
Mail::to('받는사람이메일@example.com')->send(new TestMail());
return '메일을 보냈습니다!';
});
브라우저에서 http://your-app-url/mail-test 접속하면 메일 발송 시도
'[ 서버 & DB 관련 ] > AWS' 카테고리의 다른 글
AWS RDS 에서 느린 쿼리 로그 남기고 확인하는 법 (0) | 2024.05.27 |
---|---|
AWS 콘솔 패스워드 변경 (0) | 2023.03.29 |
AWS 예약인스턴스 (RI) 구매 관련 사항 (0) | 2021.04.22 |
AWS 모니터링 (CloudWatch) (0) | 2021.04.19 |
EC2, RDS 비용 참조 (0) | 2021.04.16 |