메일러에서 수신자 이름 넣는 방법 문의드립니다

안녕하세요?
문의드립니다.
mailer.lib.php 에서는 수신자이름을 넣을 수 없나요?
홍길동<hong@gmail.com>
메일을 이렇게 보내고 싶어서요.
$target_email ="홍길동<hong@gmail.com>"; <--이렇게하면 메일이 발송되지 않습니다.
mailer($sender_name, $sender_email, $target_email, $subject, $content, 1)
무슨 다른 방법이 있으시면 알려주시면 감사하겠습니다.
|

답변 3개 / 댓글 8개

그누보드 mailer()의 $to는 현재 이메일 주소만 받게 구현돼 있어서 홍길동<hong@gmail.com> 형식으로 넣으면 주소 검증에서 실패해 발송이 안 됩니다.
수신자 이름을 표시하려면 PHPMailer의 addAddress(이메일, 이름) 형태로 넣어야 합니다.

가장 간단한 방법은 mailer.lib.php에서 아래처럼 홍길동 <hong@gmail.com> 형식을 파싱해서 addAddress에 2개 인자로 전달하도록 수정하는 겁니다.

// 기존
// $mail->addAddress($to);

// 변경(이름<이메일> 지원)
if (preg_match('/^\s*"?([^"<]+)"?\s*<\s*([^>]+)\s*>\s*$/u', $to, $m)) {
    $mail->addAddress(trim($m[2]), trim($m[1])); // email, name
} else {
    $mail->addAddress($to); // 기존 호환(이메일만)
}


그 다음 호출은 이렇게.
$target_email = '"홍길동" <hong@gmail.com>';
mailer($sender_name, $sender_email, $target_email, $subject, $content, 1);
$target_email ="홍길동<hong@gmail.com>"; 

$target_email = '"홍길동" <hong@gmail.com>';
이렇게 큰따옴표로 감싸면 안되나요?

답변에 대한 댓글 1개

답변 감사합니다. 그런데 말씀대로 해도 안됩니다.

답변에 대한 댓글 7개

안녕하세요? 위 링크에서 어디를 참조하면 될까요?
지메일 사용하실것이면 지메일 외부메일 쪽을 보시면됩니다.선생님
그런데 라이브러리 함수에서 작성자를 기재하는건 올바르지 않아요선생님 일단 메일 수신이되는지 셋팅을 먼저 하시기 바랍니다. 그리고 발송자는 폼에서 처리 하시면됩니다.
메일폼은 관리자 프론트 페이지를 참고하시면 됩니다.
메일폼은 관리자 adm/mail_list.php 프론트 페이지를 참고하시면 됩니다.
예를들어서 관리자 프론트 메일폼 서버쪽에서 기본환경설정값을 발송자 이메일과 이름을 가져오고싶다면 다음과같이.
$sender_email = $config['cf_admin_email'];
$sender_name = $config['cf_admin_email_name'];
?>
그리고 발송폼안에서
<tr>
<th>발신자</th>
<td><?php echo $sender_name; ?> (<?php echo $sender_email; ?>)</td>
</tr>
잘안되시면 https://sir.kr/jobs/requests 제작의뢰나 카톡주세요

답변을 작성하려면 로그인이 필요합니다.