2010-05-07 3 views
0

제목 자체를 추가하는 phpmailer의 아주 기본적인 구현에 이상한 오류는 코드에서 한 번 추가 된 그 두 번있다 :phpmailer는 제목으로 이메일을 보내 추가 두 번

$mailer->Subject = "My Subject"; 
$mailer->Send(); 

출력은 메일을 가져 오지만 전자 메일 클라이언트에서 제목 줄이 두 번 표시됩니다. 그것은 매우 이상하고 코드에서 더 일찍 설정되지 않았습니다.

누구든지이 오류를보고 해결책을 찾았습니까?

답변

0

여러 개의 클라이언트에서 이메일을 보려고 했습니까? 아마도 제목이 헤더에 포함되어 있거나 이메일 클라이언트가 어떤 이유로 두 번 표시하고있는 것 같습니다. 아마도 전자 메일의 헤더로?

개인적으로 나는 이런 성격의 버그를 보거나 들었습니다.

0

PHPMailer 's -> $ 제목 속성은 단지 변수 일뿐입니다. 새 값을 지정하면 이전 값에 추가되지 않고 이전 값을 덮어 쓰고 바꿉니다.

$mail->Subject .= 'extra subject bits'; 
or 
$mail->Subject = $mail->Subject . 'extra subject bits'; 

다음을 찾으려면 원인을 찾아야합니다. 아마도 메일 서버의 구성에 버그가 있거나 PHPMailer를 서브 클래 싱했기 때문에 수퍼 클래스가 뭔가 펑키하고 있습니다.

다른 서버에서 처리하는 여러 계정에 동일한 이메일을 보내면 수신 서버의 문제인지 확인할 수 있습니다. -> AddBCC, -> AddCC 및 -> AddAddress를 여러 번 처리합니다. 주소가 다른 서버에서 처리되는지 확인하십시오.

2

나는이 오래 알고 있지만, 나는 해결책을 발견 :

phpmailer는 create_header 함수에서 $ 헤더에 $ 제목과받는 사람을 추가하지만 기본 전송 방법을 사용할 때 - PHP 메일 - 그들 추가를 다시. 메일 ($로, $ this-> 주제, $ 바디, $ 헤더)

이 단지 phpmailer의 create_header 기능에서이 줄을 주석 해결하려면.

//$header[] = $this->addr_append("To", $this->to); 

//$header[] = sprintf("Subject: %s\n", trim($this->Subject)); 
0

PHPMailer 6.0.3과 비슷한 문제가 있습니다.

이메일은 @yahoo, @ sky.com에서와 rocketmail.com받는 @ 반송 이메일을 일으키는, "제목"에 대한 중복 헤더 항목과 함께 전송되고 있었다. 그럼에도 불구하고 이메일은 Hotmail과 Gmail에서 허용되었습니다. 라인 2299 주석 /PHPMailer6/PHPMailer.php에서

- 2301 문제를 해결했습니다. 한편

/*if ('mail' != $this->Mailer) { 
    $result .= $this->headerLine('Subject', $this->encodeHeader($this->secureHeader($this->Subject))); 
}*/ 

PHPMailer의 내 사용 메일을 보낼 수는, 코드 샘플의 전형적인