PHP 메일링 패키지

5220 단어 tutorialwebdevphp
이미 언급했듯이 기본 PHP mail() 함수는 대량 전송과 관련하여 기능이 제한되어 있습니다. 예를 들어 다음 캠페인을 강화할 수 있는 engaging email templates을 생성하거나 대량의 이메일을 전송하도록 설계되지 않았습니다.

그러나 PHP는 여전히 most popular programming languages 중 하나이므로 대량 이메일을 보내기 위한 리소스도 부족하지 않습니다. 적극 권장할 수 있는 몇 가지 플러그인은 다음과 같습니다.

배 메일



Pear Mail은 이메일을 보내기 위한 여러 인터페이스를 제공하는 클래스입니다(해당 문서에 설명되어 있음).

Pear Mail로 할 수 있는 일은 다음과 같습니다.

첨부 파일 및 인라인 이미지가 있는 복잡한 HTML/텍스트 메시지 작성(Mail_Mime class 포함)
PHP의 내장 mail() 함수, sendmail 프로그램 또는 SMTP 서버를 통해 이메일을 보냅니다.
대기열에서 여러 이메일을 보냅니다(Mail_Queue 클래스 포함).
Pear 문서는 약간 복잡해 보이지만 여전히 유익하며 여러 자습서를 찾을 수 있습니다. 여러 메일 패키지를 비교할 수 있도록 표준 예약 확인 이메일을 보내는 코드를 검토해 보겠습니다. 여기에는 HTML 및 텍스트 부분, 단일 첨부 파일이 포함되며 인증된 SMTP 서버를 통해 전송됩니다.

이메일 실험을 위해 가짜 SMTP 서버인 Mailtrap을 사용합니다. 실제 SMTP 서버를 모방하고 가상 받은 편지함에 테스트 이메일을 보관합니다. 이렇게 하면 이메일 샘플이 실제 고객의 받은 편지함으로 이동하지 않습니다.

require_once './vendor/autoload.php';
$from = 'Your Hotel <[email protected]>';
$to = 'Me <[email protected]>';
$subject = 'Thanks for choosing Our Hotel!';
$headers = ['From' => $from,'To' => $to, 'Subject' => $subject];
// include text and HTML versions
$text = 'Hi there, we are happy to confirm your booking. Please check the document in the attachment.';
$html = 'Hi there, we are happy to <br>confirm your booking.</br> Please check the document in the attachment.';
//add  attachment
$file = '/confirmations/yourbooking.pdf';
$mime = new Mail_mime();
$mime->setTXTBody($text);
$mime->setHTMLBody($html);
$mime->addAttachment($file, 'text/plain');
$body = $mime->get();
$headers = $mime->headers($headers);
$host = 'smtp.mailtrap.io';
$username = '1a2b3c4g5f6g7e'; // generated by Mailtrap
$password = '1a2b3c4g5f6g7e'; // generated by Mailtrap
$port = '2525';
$smtp = Mail::factory('smtp', [
  'host' => $host,
  'auth' => true,
  'username' => $username,
  'password' => $password,
  'port' => $port
]);
$mail = $smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
    echo('<p>' . $mail->getMessage() . '</p>');
} else {
    echo('<p>Message successfully sent!</p>');
}


스위프트 메일러



Swift Mailer은 PHP로 이메일을 보내는 데 널리 사용되는 또 다른 패키지입니다. 기능이 풍부하고 설명서가 잘 포함되어 있으며 사용이 매우 간단합니다.

Swift Mailer로 할 수 있는 작업은 다음과 같습니다.

복잡한 HTML/멀티파트 템플릿 생성
첨부 파일 추가 및 이미지 포함
인증된 SMTP, sendmail, Postfix 또는 자체 전송을 통해 이메일 보내기
추가 플러그인을 사용하십시오.
그 외에도 Swift Mailer는 향상된 보안을 제공하고 메모리 사용량이 적은 대용량 첨부 파일과 이미지를 처리합니다.

자세한 내용은 "How to Use Swift Mailer to Send Emails from PHP Apps"게시물을 참조하세요. 아래에서는 위에서 사용한 것과 동일한 예약 확인 전송의 간단한 예를 보여줍니다.

<?php
require_once './vendor/autoload.php';
 try {
    // Create the SMTP transport
    $transport = (new Swift_SmtpTransport('smtp.mailtrap.io', 2525))
        ->setUsername('1a2b3c4d5e6f7g')
        ->setPassword('1a2b3c4d5e6f7g');
    $mailer = new Swift_Mailer($transport);
    // Create a message
    $message = new Swift_Message();
    $message->setSubject('Thanks for choosing Our Hotel!');
    $message->setFrom(['[email protected]' => 'Your Hotel']);
    $message->addTo('[email protected]','Me');
    // Add attachment
   $attachment = Swift_Attachment::fromPath('./confirmations/yourbooking.pdf');
    $message->attach($attachment);
    // Set the plain-text part
    $message->setBody('Hi there, we are happy to confirm your booking. Please check the document in the attachment.');
     // Set the HTML part
    $message->addPart('Hi there, we are happy to <br>confirm your booking.</br> Please check the document in the attachment.', 'text/html');
     // Send the message
    $result = $mailer->send($message);
} catch (Exception $e) {
  echo $e->getMessage();
}



여러 이메일을 보내는 방법, PHP 내장 mail() 함수 및 PHP Mailer에 대해 알아보려면 Mailtrap 블로그tutorial with code samples to send emails with PHP를 참조하십시오.

좋은 웹페이지 즐겨찾기