반응형
phpmailer: "응답처" 주소만 사용하여 회신합니다.
저는 웹사이트에서 phpmailer를 사용하고 있으며, 스팸 문제를 해결하기 위해 (SMTP를 사용하여) 이메일을 보낼 메일함을 만들었습니다.
메일함 주소에서 수신하도록 이메일을 설정하고 답장 수신처를 주소로 추가했습니다.
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'tsl';
$mail->SMTPDebug = 1;
$mail->Host = EMAIL_HOST;
$mail->Port = EMAIL_PORT;
$mail->Username = EMAIL_USER;
$mail->Password = EMAIL_PASS;
$mail->SetFrom('mailbox@email.com', 'Mailbox name');
$mail->AddReplyTo('replyto@email.com', 'Reply to name');
$mail->AddAddress('user@email.com', 'User name);
메일은 정상적으로 송신되어 스팸 필터는 정상적으로 통과하고 있는 것 같습니다만, 제가 회신을 누르면 메일함 계정과 계정에 대한 회신이 모두 포함되어 있습니다.
이게 원래 일어나야 할 일인가요?답장주소만 눌러주셨으면 합니다.이게 가능하기나 해?
도움을 주셔서 감사합니다!
편집:
전자 메일 헤더를 보면, 발신인 주소가 회신처 필드에 포함되어 있는 것 같습니다.왜 그랬는지 모르겠어!
Date: Tue, 1 May 2012 11:16:25 +0100
To: User name <user@email.com>
From: Mailbox name <mailbox@email.com>
Reply-to: Mailbox name <mailbox@email.com>, Reply to name <replyto@email.com
Subject: Email subject
Message-ID: <54c530c0d1f3ff33fc87c4c41c2c9ffd@localhost>
X-Priority: 3
X-Mailer: PHPMailer 5.1 (phpmailer.sourceforge.net)
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="b1_54c530c0d1f3ff33fc87c4c41c2c9ffd"
--b1_54c530c0d1f3ff33fc87c4c41c2c9ffd
Content-Type: text/plain; charset = "iso-8859-1"
Content-Transfer-Encoding: 8bit
나는 이것에 대한 답을 찾았고, 그것은 짜증날 정도로 간단하다!기본적으로 주소에 대한 응답을 발신인 주소 앞에 추가해야 합니다.
$mail->addReplyTo('replyto@email.com', 'Reply to name');
$mail->SetFrom('mailbox@email.com', 'Mailbox name');
phpmailer 코드를 더 자세히 살펴보면 다음과 같습니다.
public function SetFrom($address, $name = '',$auto=1) {
$address = trim($address);
$name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim
if (!self::ValidateAddress($address)) {
$this->SetError($this->Lang('invalid_address').': '. $address);
if ($this->exceptions) {
throw new phpmailerException($this->Lang('invalid_address').': '.$address);
}
echo $this->Lang('invalid_address').': '.$address;
return false;
}
$this->From = $address;
$this->FromName = $name;
if ($auto) {
if (empty($this->ReplyTo)) {
$this->AddAnAddress('ReplyTo', $address, $name);
}
if (empty($this->Sender)) {
$this->Sender = $address;
}
}
return true;
}
구체적으로는 다음 행입니다.
if (empty($this->ReplyTo)) {
$this->AddAnAddress('ReplyTo', $address, $name);
}
여러분, 도와주셔서 감사합니다!
적어도 현재 버전의 PHPMailer에서는 응답 배열을 비우는 clearReplyTos() 함수가 있습니다.
$mail->ClearReplyTos();
$mail->addReplyTo(example@example.com, 'EXAMPLE');
언급URL : https://stackoverflow.com/questions/10396264/phpmailer-reply-using-only-reply-to-address
반응형
'programing' 카테고리의 다른 글
문자열을 Python 클래스 개체로 변환하시겠습니까? (0) | 2022.09.18 |
---|---|
reactjs를 사용하여 원시 html 렌더링 (0) | 2022.09.18 |
PHP simpleXML 포맷된 방법으로 파일을 저장하는 방법 (0) | 2022.09.18 |
Larabel 5 이메일 전송 시도 중 (0) | 2022.09.18 |
utf8과 latin1의 차이점 (0) | 2022.09.18 |