> 백엔드 개발 > PHP 튜토리얼 > PHP 마스터 | Swift Mailer와 이메일 보내기

PHP 마스터 | Swift Mailer와 이메일 보내기

尊渡假赌尊渡假赌尊渡假赌
풀어 주다: 2025-02-25 14:16:11
원래의
391명이 탐색했습니다.

PHP Master | Sending Email with Swift Mailer

PHP 마스터 | Swift Mailer와 이메일 보내기 키 테이크 아웃

Swift Mailer는 PHP 5.2 이상의 최소 요구 사항과 8MB의 최소 메모리 제한을 사용하여 객체 지향적 접근 방식을 사용하여 프로그래머가 쉽게 이메일을 보낼 수있는 강력한 구성 요소 기반 라이브러리입니다. Swift Mailer는 배를 통해 또는 FTP를 사용하여 파일을 업로드하여 설치할 수 있습니다. 메일러, 운송업자, 마임 엔티티, 인코더 및 플러그인을 포함한 150 개 이상의 클래스 및 인터페이스로 구성됩니다. Swift Mailer는 여러 수신자, 주제 및 일반 텍스트 본문과 함께 이메일을 만들 수있는 기능을 제공합니다. 또한 첨부 파일, 사용자 정의 SMTP 구성 및 이메일을받지 못하는 추적 수신자가 가능합니다. Swift Mailer에는도 전자 메일 본문 내부의 수신자 이름과 같이 작은 차이가있는 여러 수신자에게 동일한 이메일을 보낼 수있는 데코레이터 플러그인이 있습니다. 이것은 가입자에게 뉴스 레터를 보내는 것과 같은 작업에 도움이됩니다.

    프로그래밍 방식으로 이메일을 보내는 것은 프로그래머가 자주 처리 해야하는 일반적인 작업입니다. PHP의 기본 기능을 사용할 수 있지만 특히 메시지에 하나 이상의 파일을 첨부하려면 너무 낮은 수준 일 수 있습니다. 기본 기능을 사용하지 않거나 객체 지향적 접근 방식을 사용하여 메일을 보내려면 기사입니다. 이메일을 쉽게 보낼 수있는 강력한 구성 요소 기반 라이브러리 인 Swift Mailer를 소개하겠습니다. 2005 년에 시작된 Swift Mailer는 PHP 스크립트 또는 웹 응용 프로그램 내에서 이메일을 보낼 수있는 여러 클래스를 제공하는 라이브러리입니다. Swift Mailer에는 몇 가지 요구 사항이 있지만 최소화됩니다. 라이브러리는 SPL 확장 및 최소 메모리 한계가 8MB로 PHP 5.2 이상이 필요합니다. 공식 문서를 인용하여 신속한 메일러를 설치하는 것은 사소한 일입니다. 일반적으로 추출 된 소스 파일을 웹 서버에 업로드하는 경우 일뿐입니다. 라이브러리를 설치하는 가장 간단한 방법은 배를 통해 FTP를 사용하여 파일을 업로드하는 것입니다. 배 채널에서 설치하는 것은 유형 두 가지 명령의 문제입니다.
  • 두 번째 방법은 공유 호스팅에 있고 명령 쉘에 액세스 할 수없는 경우 가장 쉬운 방법 일 것입니다. 공식 웹 사이트에서 라이브러리를 다운로드하고 lib 폴더를 업로드하십시오. 스위프트 메일러 클래스 제품군
  • Swift Mailer는 여러 구성 요소로 함께 그룹화 된 150 개 이상의 클래스와 인터페이스로 만들어졌습니다. 그들 각각은 특정한 목적을 가지고 있습니다.
  • 메일러 : Swift_mailer 클래스에서 실현되는 메일러는 라이브러리의 중앙 클래스이며 실제로 메소드 송신 ()을 통해 이메일을 전송하는 클래스입니다. 생성자는 인터페이스 SWIFT_TRANSPORT를 구현하는 클래스의 인스턴스를 수용하여 사용자 정의 SMTP를 사용하여 이메일을 보낼 수 있습니다.<: :> 운송업자 : 인터페이스 Swift_transport를 구현하고 그 범위는 서비스와 통신하여 이메일 메시지를 전달하는 것입니다. 주요 클래스는 SMTP 프로토콜, 로컬 SendMail 실행 파일과 통신하는 SWIFT_SENDMAILTRANSPORT를 사용하는 SWIFT_SMTPTRANSPORT이며 PHP Native Mail () 함수에 의존하는 SWIFT_MAILTRANSPORT를 사용합니다. Mime Entities : 이것은 라이브러리의 핵심 요소입니다. Swift_Message라는 수신기, 피사체, 본문 등을 지정하는 데 사용할 클래스는 함께 그룹화 된 여러 엔티티로 만들어집니다. 엔티티의 두 가지 예는 첨부 파일과 이메일 헤더입니다.
  • <:> 인코더 :이 구성 요소는 무대 뒤에서 작용하기 때문에 처리 할 것이 아닙니다. 인코더에는 두 가지 유형이 있습니다 : Base64와 인용 가능한 인쇄 가능. 그들의 목표는 내용을 RFC 사양을 준수하는 형식으로 변환하는 것입니다. 플러그인 : 이들은 신속한 메일러의 기본 기능을 확장하는 데 사용됩니다. 플러그인 중 일부는 안티 파인이므로 단일 SMTP 연결 중에 전송 된 메시지 수를 제한 할 수 있습니다. Logger는 전송 프로세스 중에 진행중인 내용을 기록하는 데 사용되는 로거와 이메일 템플릿을 사용할 수있는 놀라운 플러그인 인 Decorator입니다. 이메일 텍스트에서 몇 가지 차이점 만 변경합니다.
  • 기본 예 지금까지 나와 함께? 좋은. 이제 도서관에서 구성 요소가 어떻게 구성되어 있는지에 대한 아이디어를 얻었으므로 손을 더럽 히고 Swift Mailer의 힘과 유연성을 활용하는 방법을 살펴 보겠습니다. 이 첫 번째이자 매우 간단한 예에서는 두 명의 수신자, 주제 및 일반 텍스트 본문이있는 이메일을 보여 드리겠습니다. 일단 만들어지면 수신자에게 보내집니다. 다음 코드는 이전 섹션에서 언급 한 세 가지 클래스 인 Swift_MailTransport, Swift_Mailer 및 Swift_Message를 사용합니다. 또한, 코드의 첫 번째 줄인 requift 메일러의 자동 로더를 끌어 당기는 요구 사항에 유의하십시오.
  • 보시다시피 Swift_mailTransport는 기본 PHP Mail () 함수를 사용하는 전송 계층의 인스턴스를 만드는 데 사용됩니다. 그런 다음 Swift_Message를 만들었습니다 이메일 객체로 생각할 수있는 인스턴스. 다음 줄에서 setto () 메소드, setsubject ()를 사용하는 이메일 주제, setbody ()를 사용하는 이메일 본문 및 setfrom () 메소드를 사용하는 발신자를 사용하여 수신자를 설정했습니다. 계층이 정의되고 이메일이 생성되면 실제로 Swift_mailer 클래스의 send () 메소드를 사용하여 수행되는 이메일을 실제로 보내야합니다. 첨부 파일이있는 예 첨부 파일이 오늘날의 이메일 시스템의 필수품이라는 것은 의심의 여지가 없습니다. 아무도 그들 없이는 살 수 없습니다. 이 약간 더 복잡한 예는 첨부 파일뿐만 아니라 다른 기능이있는 이메일을 보내는 방법을 보여줍니다. 2 개의 추가 수신기, 하나는 CC에 있고 두 번째는 setcc () 및 setbcc ()를 사용하여 BCC에 있습니다. attach () 메소드를 사용하여 디스크에서 검색된 하나의 첨부 파일 SWIFT_SMTPTRANSPORT 클래스를 사용한 사용자 정의 SMTP 구성 send () 메소드의 두 번째 매개 변수를 사용하여 수신자가 이메일을받지 못한 것을 알고 있습니다.
  • SWIFT_SMTPTRANSPORT 클래스를 사용하여 설정된 SMTP
  • 다른 전송 계층을 사용했습니다. SMTP
  • 서버와 연결 포트의 두 매개 변수를 허용합니다. 인스턴스를 사용하여 setUserName () 및 setpassword () 메소드를 사용하여 서버에 액세스하기 위해 적절한 사용자 이름과 비밀번호를 설정합니다. 그런 다음 첫 번째 예와 마찬가지로 Swift_Message 객체를 만들어 수신자, 주제 등을 설정했습니다. 그러나 이번에는 setcc ()와 setbcc ()도 활용했습니다. 추측 할 수 있듯이 카본 카피 및 블라인드 카본 카피 수용자를 설정할 수있는 방법. 이 예제의 주요 방법은 첨부 ()입니다. attach ()는 첨부 파일로 첨부하려는 파일로 경로를 가져 오는 정적 메소드 FromPath ()를 사용하여 하드 디스크에서 가져온 파일을 첨부합니다. 이번에는 send () 메소드의 두 번째 매개 변수를 사용하여 검색된 실패 수신자의 수를 인쇄합니다. 템플릿을 사용하여
  • 세 번째이자 마지막 예제는 가입자에게 뉴스 레터를 보내는 것과 같은 데코레이터 플러그인을 사용하는 방법을 보여줍니다. 이메일 본문 내부의 수신자 이름과 같이 작은 차이가있는 여러 수신자에게 동일한 이메일을 보낼 수 있습니다. 플러그인은 템플릿 내부 (본문) 내부를보고 자리 표시자를 설정 값으로 대체합니다. 플러그인을 사용하려면 먼저 RegisterPlugin () 메소드를 사용하여 등록한 다음 교체 값 배열을 빌드하고 사용해야합니다. 다음 코드에서는 username
트랜잭션 pear channel-discover pear.swiftmailer.org pear install swift/swift 두 자리 표시자를 배치하며, 이는 사용자의 이메일을 참조하는 값으로 프로그래밍 방식으로 대체됩니다. Decorator 플러그인 생성자는 자리 표시자를 대체하기위한 하나의 매개 변수를 수락합니다. 이 배열의 각 값은 키에 대한 사용자의 이메일과 자리 표시기 대체 쌍을 포함하는 하위 배열을 사용합니다. 이것이 바로 $ groplacements 배열의 목표입니다. 위의 예에서 자리 표시 자로서 나는 두 개의 괄호 안에 문자열을 사용했습니다 (예 : {fullName})하지만 원하는 것을 사용할 수 있습니다. 이번에는 모든 수신자를 이전과 같은 진술로 설정하지 않았으며 For Loop을 사용했습니다. 플러그인이 전송 프로세스를 가로 채고 수신자 이메일을 읽고 대체 배열의 값을 사용하여 자리 표시자를 대체하기 때문에 수행됩니다.

결론 이 기사에서는 Swift Mailer를 사용하여 이메일을 쉽게 보낼 수있는 방법을 보여주었습니다. 이것은 당신이 본 것처럼 OOP 접근법을 사용하여 많은 일을 할 수있는 매우 강력한 도서관입니다. 물론 Swift Mailer에는이 기사에서 다루지 않은 다른 많은 방법과 클래스가 있습니다. 공식 문서에서 공부할 수는 있지만 번거 로움없이 이메일을 보내기에 충분해야합니다. Fotolia를 통한 이미지 Swift Mailer에 대한 질문 에 대해 자주 묻는 질문 Composer를 사용하여 Swift Mailer를 설치하려면 PHP의 종속성 관리 도구 인 Composer를 사용하여 Swift Mailer를 쉽게 설치할 수 있습니다. Swift Mailer를 설치하려면 시스템에 작곡가를 설치해야합니다. 작곡가가 설치되면 프로젝트 디렉토리에서 다음 명령을 실행하여 Swift Mailer를 설치할 수 있습니다. Composer는 "SwiftMailer/SwiftMailer :^6.0"이 필요합니다. 이 명령은 Composer에게 Swift Mailer 패키지와 그 종속성을 프로젝트에 다운로드하도록 지시합니다. Swift Mailer와 이메일을 어떻게 보낼 수 있습니까?

Swift Mailer와 함께 이메일을 보내는 것은 메시지 작성과 관련하여, 메일러 구성 및 메시지를 보내십시오. 다음은 Swift Mailer와 함께 이메일을 보내는 방법에 대한 기본 예입니다.

require_once '/path/to/vendor/autoload.php';

-> setSubject ( 'hello')

-> setfrom ([ 'john@doe.com'=> ​​'john doe'] -> setto ([ 'receiver@domain.org', 'other@domain.org'=> '이름'])

-> setbody ( '여기 메시지 자체가 있습니다');

> $ transport = (새로운 swift_smtptransport ( 'smtp.example.org', 25))

-> setUserName ( 'your username') -> setPassword ( 'your 비밀번호 ');

$ mailer = new Swift_mailer ($ 송신);

send ($ message);
첨부 파일을 추가 할 수있는 방법 Swift Mailer가있는 이메일을 보려면?

Swift Mailer를 사용하면 이메일에 첨부 파일을 추가 할 수 있습니다. 경로, 문자열 또는 기존 신속한 첨부 인스턴스에서 파일을 첨부 할 수 있습니다. 다음은 경로에서 파일을 첨부하는 방법에 대한 예입니다. $ message = (new swift_message ()) -> setSubject ( 'hello') -> setfrom ([ 'John @doe.com '=>'John Doe '])
-> setto (['receiver@domain.org ']) -> setbody ('여기 메시지가 있습니다 자체 자체 ')
-> 첨부 (swift_attachment :: fromPath ('path/to/image.jpg ')); Swift Mailer와 함께 HTML 이메일을 어떻게 보낼 수 있습니까?

Swift Mailer를 사용하면 메시지 본문을 HTML 문자열로 설정하고 컨텐츠 유형을 'Text/HTML'으로 설정하여 HTML 이메일을 보낼 수 있습니다. 예는 다음과 같습니다.

$ message = (new swift_message ()) -> setSubject ( 'hello')
-> setfrom ([ 'john@doe.com'=> ​​'John doe ']) -> setto ([ 'receiver@domain.org']) -> setbody ( '

html 메시지는 다음과 같습니다 자체

','text/html ');
스위프트 메일러에서 오류를 어떻게 처리 할 수 ​​있습니까?
스위프트 메일러는 오류가 발생할 때 예외를 던집니다. 이러한 예외를 포착하여 오류를 처리 할 수 ​​있습니다. 예는 다음과 같습니다.
try { send ($ message);
} catch (swift_transportexception $ e) {
echo '오류가 있었다. 이메일 보내기 : '. $ e-> getMessage ();

}

gmail과 함께 Swift Mailer를 어떻게 사용할 수 있습니까?

Gmail SMTP 서버로 SMTP 전송을 구성하여 Gmail과 함께 Swift Mailer를 사용할 수 있습니다. 설정. 예는 다음과 같습니다.

$ transport = (New Swift_smtptransport ( 'smtp.gmail.com', 465, 'ssl'))) -> setusername ( 'your gmail username') - > setPassword ( 'gmail password');

Swift Mailer와 함께 여러 이메일을 어떻게 보낼 수 있습니까? 여러 메시지 인스턴스를 작성하고 동일한 Mailer 인스턴스로 보내면 Swift Mailer로 여러 이메일을 보낼 수 있습니다. 예는 다음과 같습니다.
$ message1 = (new swift_message ()) -> setSubject ( 'hello') -> setfrom ([ 'john@doe.com'=> ​​'John doe ']) -> setto ([ 'receiver1@domain.org'])
-> setbody ( '여기 메시지가 있습니다 자체 자체 ');
$ message2 = (new swift_message ())
-> setSubject ('hello ')

-> setfrom (['john@doe.com '=>'John Doe '])

-> setto (['receiver2@domain.org ']) -> setbody ('여기 메시지가 있습니다 자체 Symfony의 Mailer?

Swift Mailer는 Symfony와 통합되어 서비스로 사용할 수 있습니다. Mailer 서비스를 받고 메시지를 보내는 데 Symfony에서 Swift Mailer와 함께 이메일을 보낼 수 있습니다. 예는 다음과 같습니다.
$ message = (new swift_message ()) -> setSubject ( 'hello')
-> setfrom ([ 'john@doe.com'=> ​​'John doe ']) -> setto ([ 'receiver@domain.org'])
-> setbody ( '여기 메시지가 있습니다 자체 ');
$ this-> get ('mailer ')-> send ($ message);

Swift Mailer와 이메일의 우선 순위를 어떻게 설정할 수 있습니까? 메시지 인스턴스에서 setPriority 메소드를 호출하여 Swift Mailer로 이메일의 우선 순위를 설정할 수 있습니다. 우선 순위는 1 (가장 높은)과 5 (최저) 사이의 정수입니다. 예는 다음과 같습니다.

$ message = (new swift_message ()) -> setSubject ( 'hello')

-> setfrom ([ 'john@doe.com'=> ​​'John doe ']) -> setto (['receiver@domain.org ']) -> setbody ('여기 메시지 자체가 있습니다 ') -> setPriority (1); Swift Mailer로 이메일을 비동기 적으로 보낼 수 있습니까?

Swift Mailer는 상자에서 전송하는 비동기 이메일을 지원하지 않습니다. 그러나 메시지 큐를 사용하여이를 달성 할 수 있습니다. 메시지를 큐에 넣은 다음 별도의 프로세스로 보낼 수 있습니다. 이를 통해 응용 프로그램은 이메일이 전송되기를 기다리지 않고 다른 작업을 계속 처리 할 수 ​​있습니다.

위 내용은 PHP 마스터 | Swift Mailer와 이메일 보내기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿