Archives
10-30 00:18
Today
0
Total
287,080
관리 메뉴

FILife

Laravel에서 gmail로 html 메일 보내기 (2019.5.10 내용추가) 본문

내가 자꾸 까먹어서 쓰는 개발 이야기/Laravel

Laravel에서 gmail로 html 메일 보내기 (2019.5.10 내용추가)

FIL 2018. 1. 2. 18:26

삽질하다 다음번엔 하기 싫어서 남김.


일단 .evn 파일을 열어 메일 계정을 셋팅한다.


MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=<your@email.address>
MAIL_PASSWORD=<your_password>
MAIL_ENCRYPTION=tls


셋팅을 마치면 메일을 보낼 메서드에 아래와 같이 작성한다.


\Mail::send([], $data, function ($message) {
$message->to("to@e.mail", "to_name")
->from("from@e.mail", "from_name)
->subject("message_title")
->setBody("message body bla bla bla", "text/html;charset=utf-8");
});


이것이 기본 형태이다.


param 1 에 view 대신 빈 배열을 넣어 통과시켰다. (구글이 알랴줌)


그러나 우리는 고정 형태의 메일을 고정 수신자에게 보내지는 않을것이다.


만약 그럴거라면 당장 뒤로가기를 눌러라. 대체 이걸 왜 읽고있나?


어딘가의 DB에서 가져온 row를 array로 변경했고, 이걸 $data 라고 가정한다.


\Mail::send([], $data, function ($message) use ($data) {
$message->to($data["to_name"], $data["to_name"])
->from($data["from_email"], $data["from_name"])
->subject($data["title"])
->setBody($data["body"], "text/html;charset=utf-8");
});

위와 같이 "use" 키워드를 사용하여 callback 함수에서 데이터를 사용할 수 있게 해주면 된다.


그럼 ㅂㅂ



================================== 2019.05.10 내용 추가 ====================================


message body에 아래 내용을 추가 해 주어야 메일 폼이 깨지지 않는다.


$message .= 'Content-Transfer-Encoding: 8bit' . "\r\n\r\n";


0 Comments
댓글쓰기 폼