function sendEmailSMTP($subject = '이메일 제목', $fromEmail = 'your_email@example.com', $fromName = '보내는 사람', $toRecipients, $message, $signature = "")
{
$mail = new PHPMailer(true);
try {
// 서버 설정
$mail->isSMTP();
$mail->Host = 'smtp.daum.net'; // SMTP 서버 주소
$mail->Port = 465; // SMTP 포트 번호
$mail->SMTPAuth = true;
$mail->Username = 'admin'; // SMTP 계정
$mail->Password = 'password'; // SMTP 계정 비밀번호
$mail->SMTPSecure = 'ssl';
$mail->CharSet = 'utf-8';
$mail->Encoding = "base64";
// 발신자 설정
$mail->setFrom($fromEmail, $fromName);
// 수신자 설정
if (count($toRecipients) > 1) {
// 여러 수신자에게 보낼 때는 숨은 참조(BCC) 사용
foreach ($toRecipients as $recipient) {
$toEmail = $recipient['email'];
$toName = isset($recipient['name']) ? $recipient['name'] : $toEmail;
$mail->addBCC($toEmail, $toName);
}
$mail->addAddress($fromEmail, "단체메일 수신자");
} else {
// 단일 수신자에게 보낼 때는 일반적인 수신자(CC) 사용
$toEmail = $toRecipients[0]['email'];
$toName = isset($toRecipients[0]['name']) ? $toRecipients[0]['name'] : $toEmail;
$mail->addAddress($toEmail, $toName);
$mail->addBCC($toEmail, "발신메일 저장");
}
// 이메일 내용 설정
$mail->isHTML(true);
$mail->Subject = $subject;
$sendMessage = $message;
if ($signature !== "") {
$sendMessage = "{$message}<br>{$signature}";
}
$mail->Body = $sendMessage;
// 이메일 보내기
$mail->send();
echo '이메일이 성공적으로 보내졌습니다.';
} catch (Exception $e) {
echo '이메일 보내기 실패했습니다. 에러: ' . $mail->ErrorInfo;
}
}
참고사항
- SMTP 아이디는 다음 아이디, 비밀번호는 다음 비밀번호를 사용한다.
- 단, 2차 로그인이 설정되어 있을 경우에는 앱 비밀번호를 설정하여 대신 사용한다.