PHP로 대량 메일을 보낼 때 각 가입자에게 전자 메일을 보내는 것이 더 낫습니다 (모든 전자 메일 주소를 통해 for 루프를 실행하는 것). 또는 쉼표로 구분 된 목록에 숨은 참조를 모두 추가하는 것이 좋습니다. 하나의 이메일 만 보내시겠습니까?PHP 대용량의 메일 보내기 : 각각 하나씩 하나씩?
감사합니다.
PHP로 대량 메일을 보낼 때 각 가입자에게 전자 메일을 보내는 것이 더 낫습니다 (모든 전자 메일 주소를 통해 for 루프를 실행하는 것). 또는 쉼표로 구분 된 목록에 숨은 참조를 모두 추가하는 것이 좋습니다. 하나의 이메일 만 보내시겠습니까?PHP 대용량의 메일 보내기 : 각각 하나씩 하나씩?
감사합니다.
스팸 메일 방지를 위해 BCC 필드의 주소 수가 SMTP 서버에 제한 될 가능성이 있습니다. 나는 안전한 길을 가고 각 개인 가입자에게 이메일을 보낼 것입니다. 또한 필요한 경우 각 가입자의 전자 메일을 사용자 지정할 수 있습니다.
mail()은 대량 메일을 보내는 가장 좋은 방법은 아닙니다 (메일 서버를 호출 할 때마다 SMTP 서버에 대한 새 연결을 여는 것이므로). 당신은 PEAR::Mail을 들여다 볼 수 있습니다.
받는 사람 당 전자 메일을 보내는 것이 가장 좋습니다.
리눅스 메일 서버 인 경우 대용량 처리량을 처리 할 수 있으므로 볼륨이 문제가되지 않도록해야합니다.
공유 웹 서버 인 경우 호스트가 행복하지 않을 수 있습니다.이 경우에는 chuncks로 분할하고 전송을 확산합니다. 헌신적 인 경우 다음과 같이하십시오.
고마워, 브라이언. – Francisc
숨은 참조 수신자 중 하나에 대해 보내는 프로세스가 실패한 경우 (예를 들어 원인을 해결할 수없는 도메인이 될 수 있음) 전체 작업이 취소됩니다 (이 중 99 %는 케이스 원하지 않는 행동).
전자 메일을 PHP 루프로 보내면 전자 메일 중 하나가 실패해도 다른 전자 메일이 보내집니다.
어떤 메일 서버에서도이 동작을 경험하지 못했습니다. 아마도이 정보의 출처를 제공 할 수 있습니까? –
@Victor Welling 직장에서이 문제가 발생했습니다. 정확한 메일 서버 소프트웨어를 알지 못합니다. –
다른 사람들은 수신자 당 하나의 메일이 더 적합하다고 말합니다. 당신이 라이브러리 SwiftMailer에 시도, 당신을 위해 더러운 일을 부여하려면
는 예는 문서에서 직접입니다 :
require_once 'lib/swift_required.php';
//Create the Transport
$transport = Swift_SmtpTransport::newInstance('localhost', 25);
//Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);
//Create a message
$message = Swift_Message::newInstance('Wonderful Subject')
->setFrom(array('[email protected]' => 'John Doe'))
->setTo(array('[email protected]', '[email protected]' => 'A name'))
->setBody('Here is the message itself')
;
//Send the message
$numSent = $mailer->batchSend($message);
printf("Sent %d messages\n", $numSent);
/* Note that often that only the boolean equivalent of the
return value is of concern (zero indicates FALSE)
if ($mailer->batchSend($message))
{
echo "Sent\n";
}
else
{
echo "Failed\n";
}
*/
그것은 또한 좋은 Antiflood 플러그인을 가지고 : http://swiftmailer.org/docs/antiflood-plugin-howto
PEAR 제안에 감사드립니다. – Francisc