2016-10-03 6 views
1

현재 PHPMailer` 라이브러리를 사용하여 PHP 이메일 스크립트를 작성 중입니다. 모든 전자 메일 주소에 숨은 참조를 사용하여 대량 메일을 보내고 있습니다.PHP 메일러를 사용하여 본문의 현재 이메일 ID를 얻는 방법

메일 본문에 현재 수신자의 이메일 주소를 포함하고 싶습니다.

<?php 
require 'PHPMailerAutoload.php'; 
$mail = new PHPMailer; 
$mail->isSMTP();          
$mail->Host = 'smtp1.example.com;smtp2.example.com'; 
$mail->SMTPAuth = true;         
$mail->Username = '[email protected]';     
$mail->Password = 'secret';       
$mail->SMTPSecure = 'tls';       
$mail->Port = 587;        
$mail->setFrom('[email protected]', 'Mailer'); 
$mail->addAddress('[email protected]'); 

$arrMail [] = array('[email protected]','[email protected]'); 

for($i=0;$i<count($arrMail);$i++) 
{ 
    $mail->addBCC($arrMail[$i]); 
    $htmlversion = 'Hello '.$arrMail[$i].' !'. 
} 


// $htmlversion = 'Hello <email_id needed here> !'. 

    $mail->Body = $htmlversion; 
    $mail->AltBody = $textVersion; 

     if(!$mail->send()) 
     { 
     echo 'Message could not be sent.'; 
     echo 'Mailer Error: ' . $mail->ErrorInfo; 
     } 
     else 
     { 
     echo 'Mail sent'; 
     } 

문제 : [email protected] 이메일을 수신 경우, 그 메시지 본문이 자신의 이메일 주소를 포함해야

다음은 내 샘플 코드입니다. 현재 모든 수신자의 메일 본문에 첫 번째 이메일 주소가 발송됩니다.

참고 : 다른 페이지에서 언급 한 것처럼 To을 사용하여 메일을 하나씩 보내지 않겠습니다.

일부 세션 또는 데이터베이스 로직을 사용하여 가능합니까?

나는 php 5.5.9을 사용하고 있습니다.

+0

bcc가없는 루프를 사용하여 보내야합니다 – Shahrukh

+0

내가 '숨은 참조'를 한 이유는 다른 메일을 숨기는 것입니다. – Hiranya

+0

배열의 모든 전자 메일을 가져 와서 해당 배열의 foreach 루프를 실행합니다. –

답변

0

메일 본문을 루프에 넣지 않았기 때문에 코드에서 동일한 이메일 주소를 다시 사용하고 있습니다. 루프를 사용하면 숨은 참조가 필요하지 않습니다.

$arrMail [] = array('[email protected]', '[email protected]'); 
$total = count($arrMail); 

for($i = 0; $i < $total; $i++) { 

    $email = $arrMail[$i]; 
    $htmlversion = "Hello $email !"; 

    $mail->Body = $htmlversion; 
    $mail->AltBody = $textVersion; 
    $mail->AddAddress($email); 

    if (!$mail->send()) { 
     echo 'Message could not be sent.'; 
     echo 'Mailer Error: ' . $mail->ErrorInfo; 
    } else { 
     echo 'Mail sent'; 
    } 
} 

나는 메일 하나씩 다른 페이지에서 언급 등을 사용하여 보내 싶지 않다.

유감스럽게도 BCC는 본질적으로 동일한 이메일을 여러 수신자에게 보냅니다. 각 사람마다 전자 메일을 개별적으로 사용자 지정하려면 개별 전자 메일을 보내야합니다.

+0

내가 'bcc'를 사용하는 이유는 한명의 수신자가 다른 쪽 수신자의 메일 아이디를 볼 수 없기 때문이다. 또한'Cc'는 어떨까요? – Hiranya

+0

@Hiranya 원하든 원하지 않든, 각 수신자의 이메일 본문을 변경하려면 숨은 참조 또는 참조를 사용할 수 없습니다. BCC 또는 CC의 요점은 각 사람에게 동일한 이메일을 복사 * 복사하는 것을 의미합니다. – BadHorsie