[PHP] PHPMailer를 이용해서 이메일 보내기 (다음 카카오)

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차 로그인이 설정되어 있을 경우에는 앱 비밀번호를 설정하여 대신 사용한다.

Leave a Comment