안녕하세요?
문의드립니다.
mailer.lib.php 에서는 수신자이름을 넣을 수 없나요?
홍길동<hong@gmail.com>
메일을 이렇게 보내고 싶어서요.
$target_email ="홍길동<hong@gmail.com>"; <--이렇게하면 메일이 발송되지 않습니다.
mailer($sender_name, $sender_email, $target_email, $subject, $content, 1)
무슨 다른 방법이 있으시면 알려주시면 감사하겠습니다.
문의드립니다.
mailer.lib.php 에서는 수신자이름을 넣을 수 없나요?
홍길동<hong@gmail.com>
메일을 이렇게 보내고 싶어서요.
$target_email ="홍길동<hong@gmail.com>"; <--이렇게하면 메일이 발송되지 않습니다.
mailer($sender_name, $sender_email, $target_email, $subject, $content, 1)
무슨 다른 방법이 있으시면 알려주시면 감사하겠습니다.
|
답변 3개 / 댓글 10개
채택된 답변
+20 포인트
3주 전
그누보드 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);
수신자 이름을 표시하려면 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);
답변에 대한 댓글 1개
$target_email ="홍길동<hong@gmail.com>";
를
$target_email = '"홍길동" <hong@gmail.com>';
이렇게 큰따옴표로 감싸면 안되나요?
를
$target_email = '"홍길동" <hong@gmail.com>';
이렇게 큰따옴표로 감싸면 안되나요?
답변에 대한 댓글 1개
3주 전
답변에 대한 댓글 8개
3주 전
지메일 사용하실것이면 지메일 외부메일 쪽을 보시면됩니다.선생님
3주 전
그런데 라이브러리 함수에서 작성자를 기재하는건 올바르지 않아요선생님 일단 메일 수신이되는지 셋팅을 먼저 하시기 바랍니다. 그리고 발송자는 폼에서 처리 하시면됩니다.
3주 전
메일폼은 관리자 adm/mail_list.php 프론트 페이지를 참고하시면 됩니다.
3주 전
예를들어서 관리자 프론트 메일폼 서버쪽에서 기본환경설정값을 발송자 이메일과 이름을 가져오고싶다면 다음과같이.
$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>
$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>
답변을 작성하려면 로그인이 필요합니다.