PHPMAILER : PHP 메일을 보내는 강력한 도구
PHPMailer는 2001 년에 출시 된 이후 PHP 개발자가 프로그래밍 방식의 이메일을 보내는 데 선호되는 옵션 중 하나이며 SwiftMailer와 같은 다른 인기있는 라이브러리와 동등합니다. 이 기사는 PHPMailer가 PHP의 내장
기능보다 더 나은 이유를 설명하고 코드 예제를 제공합니다.
mail()
코어 포인트
PHPMailer 능력.
PHPMailer는 작곡가를 사용하여 설치할 수 있으며 WordPress, Drupal 및 Joomla와 같은 인기있는 PHP 컨텐츠 관리 시스템에서 사용됩니다.
이 라이브러리는 강력한 오류 처리 메커니즘을 제공하고 40 개 이상의 언어로 오류 메시지를 인쇄 할 수 있으며 SSL 및 TLS 인증뿐만 아니라 SMTP 프로토콜 지원을 통합합니다.
Phpmailer는 메일을 보내는 것 외에도 첨부 파일 추가, html 또는 일반 텍스트 버전의 메일을 보내고 SMTP를 사용하여 비 로컬 서버에서 메일을 보내는 것을 지원하지만 POP3 프로토콜을 사용하여 메일 서버에서 메일 검색을 지원하지는 않습니다.
-
phpmailer와 php
mail()
함수의 비교
대부분의 경우, Phpmailer는 PHP 내장 - 기능의 대안이지만, 많은 경우
기능의 유연성만으로도 요구를 충족시키기에 충분하지 않습니다. -
먼저, phpmailer는 객체 지향 인터페이스를 제공하는 반면 함수는 객체 지향적이지 않습니다. PHP 개발자는 일반적으로
기능을 사용하여 전자 메일을 보낼 때 - 문자열을 작성하는 것을 좋아하지 않습니다. 이로 인해 많은 탈출 작업이 필요하기 때문입니다. PHPMailer는이 프로세스를 단순화합니다. 함수를 사용하여 첨부 파일 및 html 기반 메일을 보낼 때 개발자는 복잡한 코드를 작성해야하며 (이스케이프 캐릭터, 인코딩 및 서식) Phpmailer는이를 쉽게 만듭니다.
또한 함수는 로컬 메일 서버가 메일을 보내도록 요구하는데, 이는 항상 설정하기 쉽지는 않습니다. 인증을 사용할 수 있으면 Phpmailer는 비 지역 메일 서버 (SMTP)를 사용할 수 있습니다.
다른 장점은 다음과 같습니다
는 대체 일반 텍스트 버전의 메시지를 비 HTML 메일 클라이언트에 보낼 수 있습니다.
는 안전하고 최신 상태로 유지하기 위해 매우 활발한 개발자 커뮤니티가 있습니다. mail()
mail()
PHPMailer는 WordPress, Drupal 및 Joomla와 같은 인기있는 PHP 컨텐츠 관리 시스템에서도 사용됩니다.
phpmailer 설치
phpmailer는 작곡가를 사용하여 설치할 수 있습니다
phpmailer mail()를 사용하여 로컬 웹 서버에서 이메일을 보냅니다
다음은 phpmailer를 사용하여 로컬 웹 서버에서 메일을 보내는 가장 간단한 예입니다.composer require phpmailer/phpmailer
로그인 후 복사
로그인 후 복사
PHP 파일의 코드 및 댓글은 전자 메일 주제, 발신자 이메일 주소, 수신자 이메일 주소, HTML 이메일 본문 및 오류를 처리 할 위치를 확인할 수 있습니다.
첨부 파일이 포함 된 이메일을 보내십시오
다음은 phpmailer를 사용하여 첨부 파일로 메일을 보내는 방법의 예입니다.
여기, 우리는 파일을 첨부 파일 (스크립트와 동일한 디렉토리에 위치)과 이미지/profile.png (스크립트 디렉토리의 이미지 디렉토리에 위치)를 첨부합니다.
메일에 첨부 파일을 추가하려면 파일 경로를 매개 변수로 전달하여 phpmailer 객체의
함수를 호출합니다. 여러 파일을 첨부하려면 여러 번 호출해야합니다.
문제 해결 <🎜 🎜>
두 가지 예에서는
클래스의 Phpmailer 클래스를 디버깅에 사용하므로 오류가 발생하면 발생할 수있는 문제가 디버깅하는 데 도움이됩니다. 또한 Phpmailer 생성자에 매개 변수 <?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require_once "vendor/autoload.php";
// PHPMailer对象
$mail = new PHPMailer(true); // 构造函数中的参数true启用异常
// 发件人邮箱地址和名称
$mail->From = "from@yourdomain.com";
$mail->FromName = "完整姓名";
// 收件人地址和名称
$mail->addAddress("recepient1@example.com", "收件人姓名");
$mail->addAddress("recepient1@example.com"); // 收件人姓名是可选的
// 收件人回复地址
$mail->addReplyTo("reply@yourdomain.com", "回复");
// 抄送和密送
$mail->addCC("cc@example.com");
$mail->addBCC("bcc@example.com");
// 发送HTML或纯文本邮件
$mail->isHTML(true);
$mail->Subject = "主题文本";
$mail->Body = "<i>HTML格式邮件正文</i>";
$mail->AltBody = "这是邮件内容的纯文本版本";
try {
$mail->send();
echo "邮件已成功发送";
} catch (Exception $e) {
echo "邮件错误:" . $mail->ErrorInfo;
}
?>
로그인 후 복사
를 추가하여 더 높은 수준의 설명적인 예외를 출력했습니다.
우리가 사용하고있는 시스템에 따라, 우리가 볼 수있는 가장 큰 오류는 백그라운드에서
함수를 실행하는 것과 관련이 있습니다 : <🎜 🎜>.
메일 오류 : 메일 함수를 인스턴스화 할 수 없습니다. addAttachment
보다 자세한 오류 정보가 필요한 경우 절에 다음을 추가 할 수도 있습니다.
일반적으로, 메일 함수의 문제는 누락 된 메일 서버 설정과 관련이 있으며,이 경우 함수는 다음과 같은 것을 반환합니다.
Exception
이것은 아마도 우리가 가진 가장 일반적인 문제 일 것입니다. SMTP를 사용하여 쉽게 해결할 수 있습니다. true
현지화 오류 메시지 <🎜 🎜>를 표시하십시오
<<> 43 개의 다른 언어로 오류 메시지를 반환 할 수 있습니다.
다른 언어로 오류 메시지를 표시하려면 phpmailer의 소스 코드에서 언어 디렉토리를 프로젝트 디렉토리로 복사하십시오. mail()
예를 들어 러시아어로 오류 메시지를 반환하려면 다음 방법을 사용하여 Phpmailer 객체를 러시아어로 설정하십시오.
언어 디렉토리에 자신의 언어 파일을 추가 할 수도 있습니다.
smtp <🎜 사용
다른 호스트의 메일 서버를 사용하여 메일을 보낼 수 있지만 먼저 인증이 필요합니다. 예를 들어 Gmail의 메일 서버에서 메일을 보내려면 Gmail 계정이 있어야합니다.
SMTP는 메일 클라이언트가 메일 서버에 메일 요청을 보내기 위해 사용하는 프로토콜입니다. 메일 서버가 메일을 확인한 후 대상 메일 서버로 전송됩니다.
다음은 Gmail 메일 서버에서 도메인에서 메일을 보내는 예입니다. 코드를 실행하기 위해 로컬 서버가 필요하지 않습니다. 우리는 SMTP 프로토콜을 사용합니다 : <🎜 🎜>composer require phpmailer/phpmailer
로그인 후 복사
로그인 후 복사
gmail에는 smtp를 통한 tls 암호화가 필요하므로 그에 따라 설정합니다. SMTP를 전송하기 전에 암호화 유형이 필요한지 여부와 인증이 필요한 경우 사용자 이름과 비밀번호도 필요합니다. Gmail에서 2 단계 인증을 활성화하면 사용자 이름/비밀번호와 함께 SMTP를 사용할 수 없습니다. 대신 추가 구성이 필요합니다.
로컬 메일 대신 원격 SMTP를 사용하는 큰 장점 중 하나는 PHP의 함수를 사용하여 메일을 보내고 발신자 주소 도메인을 로컬 도메인 이름 (서버 이름)과 다른 것으로 설정한다는 것입니다. 이메일 서버의 공격 필터는 스팸으로 표시됩니다. 예를 들어, sender address name@gmail.com을 사용하여 hostname example.com이있는 서버에서 name@yahoo.com으로 이메일을 보내면 Yahoo의 서버는이를 스팸으로 표시하거나 사용자에게 메시지를 표시하지 않습니다. 메시지의 출처는 example.com이지만 gmail.com에서 나타나기 때문에 메시지를 신뢰합니다. Yahoo는 Name@gmail.com을 가지고 있지만 이것을 알 수있는 방법이 없습니다.
pop3 mail()를 사용하여 이메일 검색
PHPMailer는 또한 Pop-be-be-be-smtp 확인을 통해 메일을 보내도록 허용합니다. 다시 말해, SMTP를 사용하여 POP 및 Send Mail을 사용하여 인증 할 수 있습니다. 불행히도 Phpmailer는 POP3 프로토콜을 사용하여 메일 서버에서 메일 검색을 지원하지 않습니다. 메일을 보내는 것으로 제한됩니다.
저장소 위키 또는 공식 문서 에서이 라이브러리에 대한 API에 대해 배울 수 있습니다.
PHP 라이브러리 종속성에 어려움을 겪고 있습니까? 화면 녹화를보고 Composer가 어떻게 관리하는 데 도움이되는지 확인하십시오.
phpmailer에 대한 자주 질문
phpmailer는 무엇입니까? PHPMailer는 PHP 응용 프로그램에서 이메일을 보내기위한 인기있는 오픈 소스 PHP 라이브러리입니다. SMTP, 또는 기타 이메일 보내기 방법을 통해 이메일을 보내는 간단하고 유연한 방법을 제공합니다.
phpmailer를 설치하는 방법은 무엇입니까? 작곡가를 사용하여 phpmailer를 설치하거나 Github에서 직접 라이브러리를 다운로드 할 수 있습니다. 자세한 설치 지침은 PHPMailer 문서에서 찾을 수 있습니다.
Phpmailer는 무료로 사용할 수 있습니까? 예, Phpmailer는 오픈 소스이며 LGPL 라이센스에 따라 출시되므로 오픈 소스 및 상업 프로젝트에서 무료로 제공됩니다.
Phpmailer의 시스템 요구 사항은 무엇입니까? PHPMailer는 PHP 5.5 이상과 호환됩니다. 웹 호스팅 환경이 이러한 PHP 버전을 지원하는지 확인하십시오.
phpmailer를 사용하여 이메일을 보내는 방법은 무엇입니까? phpmailer를 사용하여 phpmailer 클래스의 인스턴스를 만들고 SMTP 서버 세부 정보 및 이메일 컨텐츠와 같은 필요한 속성을 설정 한 다음 메소드를 호출하여 이메일을 보낼 수 있습니다. Phpmailer가 이메일로 첨부 파일을 처리 할 수 있습니까? 예, Phpmailer는 이메일에 첨부 파일을 추가하는 방법을 제공합니다. 서버 또는 원격 위치에서 파일을 첨부 할 수 있습니다.
SMTP 란 무엇이며 PhpMailer와 함께 사용해야하는 이유는 무엇입니까? SMTP (Simple Mail Transfer 프로토콜)는 이메일을 보내는 일반적인 방법입니다. Phpmailer와 함께 SMTP를 사용하면 원격 이메일 서버를 통해 이메일을 보내면서 이메일 배송에 대한 더 나은 제어 및 안정성을 제공 할 수 있습니다.
phpmailer와 함께 html 이메일을 보낼 수 있습니까?
예, Phpmailer를 사용하면 일반 텍스트 및 HTML 형식으로 이메일을 보낼 수 있습니다. 그에 따라 메시지 유형과 형식을 설정할 수 있습니다. 일반 텍스트 이메일은 비 HTML 메일 클라이언트에 적합합니다.
phpmailer를 사용하여 비 HTML 메일 클라이언트에 일반 텍스트 이메일을 보낼 수 있습니까?
예, Phpmailer를 사용하면 HTML 이메일의 대안으로 일반 텍스트 이메일을 보낼 수 있습니다. 그에 따라 메시지 유형과 형식을 설정할 수 있습니다. 일반 텍스트 이메일은 비 HTML 메일 클라이언트에 적합합니다.
sendmail과 같은 비 SMTP 메일 서버에서 phpmailer를 사용할 수 있습니까? 예, Phpmailer는 SMTP, 및 기타 사용자 정의 방법을 포함한 다양한 이메일 전송 방법을 지원하므로 다양한 유형의 메일 서버와 함께 사용할 수 있습니다.
위 내용은 PHPMailer와 함께 PHP에서 이메일을 보내는 것의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!