command line 명령어로 메일 보내기 (php)
리눅스/Mail2020. 2. 20. 13:04
반응형
php 7.2 에서 테스트 하였습니다.
참고로 메일을 보내기 위해서는 로컬에 SMTP 가 열려 있어야 합니다.
# vi send.php
<?php // 메일 헤더 (보내는 사람) $headers = "From: SENDER<sender@sysdocu.tistory.com>\r\nMIME-Version: 1.0\r\nContent-Type: text/html; charset=utf-8\r\nContent-Transfer-Encoding: base64\r\n"; // 메일 제목 $title = "메일 제목입니다."; $title = "=?utf-8?B?".base64_encode($title)."?=\n"; // 메일 내용 (직접 입력할 경우) //$content = "<html lang='ko'><head><meta charset='utf-8'/></head><body><h1>안녕하세요. 테스트 메일 입니다.</h1></body></html>"; // 메일 내용 (파일에서 출력할 경우) $file_handle = fopen("mail_body.html", "r"); $content = ""; while (!feof($file_handle)) { $line_of_text = fgets($file_handle); $content = $content . $line_of_text . " "; } fclose($file_handle); mail("user@sysdocu.tistory.com", $title, chunk_split(base64_encode($content)), $headers); ?> |
제목은 한글이 안깨지도록 하였는데, 메일 헤더값의 한글은 어떻게 하는지 몰라서
메일 닉네임 사용시 영문으로 써야함 (SENDER 부분처럼 하던가 이메일 주소만 남기고 제거해도 됨)
# chmod 755 send.php
발송하기
# php send.php
===================================================
대량으로 보낼때는..
1) send.php 에서 두 군데를 수정
$USER = $_SERVER['argv']; // 파일 맨 첫 줄에 추가 mail("$USER[1]", $title, chunk_split(base64_encode($content)), $headers); // 맨 아랫줄에 user@sysdocu.tistory.com 대신 $USER[1] 로 변경 |
2) 메일 발송을 반복해 줄 쉘스크립트 생성
# vi run.sh
#!/bin/bash for USER in `cat mail_list.txt`; do php send.php $USER echo $USER 으로 메일 발송 완료 done |
# chmod 700 run.sh
3) 메일 리스트 작성
# vi mail_list.txt
user@sysdocu.tistory.com user2@sysdocu.tistory.com user3@sysdocu.tistory.com |
4) SMTP 데몬 가동
메일 발송시 SMTP 로 발송하기 때문에 로컬에 관련 데몬이 구동되어야 한다.
25번 포트가 열려있는지 확인하자.
구동 안되어 있을 경우 별다른 설정 없이 데몬만 가동하면 된다.
# systemctl start sendmail
5) 발송하기
# sh run.sh
* 사용하기 전에 개인 메일 2~3개로 테스트를 먼저 꼭 해보자.
반응형
'리눅스 > Mail' 카테고리의 다른 글
쉘스크립트를 이용한 메일 IP 평판 확인하기 (block list 등록 여부) (0) | 2021.12.21 |
---|---|
메일 포워딩 하면서 수신자 이메일 변경하기 (sendmail + incrontab + shell script) (0) | 2021.03.25 |
command line 명령어로 메일 보내기 (mail) - 한글 제목 불가 (0) | 2020.02.20 |
command line 명령어로 메일 보내기 (sendEmail) - 한글 제목 불가 (0) | 2019.07.10 |
sendmail 릴레이 설정 (0) | 2018.10.24 |
댓글()