> 백엔드 개발 > PHP 튜토리얼 > PHP와 이메일 보내기

PHP와 이메일 보내기

Christopher Nolan
풀어 주다: 2025-03-02 08:34:11
원래의
823명이 탐색했습니다.

Sending Emails with PHP

코어 포인트

PHP는 기본 일반 문자 메시지, HTML 메시지 및 첨부 파일을 포함한 우편물을 포함하여 이메일을 쉽고 효율적인 방법을 제공합니다.

PHP의
    기능은 이메일을 보내는 데 사용됩니다. 간단한 이메일의 경우 수신자의 주소, 주제 및 이메일 본문의 세 가지 매개 변수 만 필요합니다.
  • 첨부가 첨부 파일로 HTML 메일 또는 메일을 보낼 때 MIME 표준을 사용하여 메일을 부품으로 나누고 선택한 경계로 분리해야합니다. 각 섹션은 내용의 내용, 인코딩 방법, 컨텐츠 처리 방법 및 컨텐츠 자체를 정의해야합니다.
  • Phpmailer 라이브러리를 사용하면 SMTP 서버에 연결, 첨부 파일 추가, 오류 처리, 여러 메일 전송, 사용자 정의 헤더 추가 등을 허용하는 PHP에서 메일을 보내는 기능을 향상시킬 수 있습니다.

  • mail() PHP에 스크립트를 작성하여 친구에게 흥미로운 답장 주소가있는 이메일을 보내고 싶을 수도 있습니다. 그러나 더 의미있는 일이 점점 더 의미가 있습니다! 물론, 다른 이유가있을 수 있습니다. 예를 들어, 문제를 알리기 위해 Cron 작업이 필요하거나 사용자가 스크립트를 시작할 때 알림을 받거나 귀하에게 메시지를 전달하여 PHP 기술을 전달하고 귀하의 웹 기반 메일 클라이언트를 시연하거나 이메일을 통해 STARS를 작성하는 데 필요한 스크립트를 작성해야합니다. 그리고 그것은 매우 간단합니다! 대부분의 경우 PHP 설치는 이메일을 보낼 수 있습니다. 공유 호스팅을 사용하고 있거나 APT-GET과 같은 패키지 관리 시스템을 사용하여 PHP를 설치 한 경우 이미 설정되었습니다. 소스에서 PHP를 컴파일하거나 Windows에서 PHP를 실행하는 경우에만 추가 구성에 대해 걱정해야합니다. 두 경우 모두 온라인으로 제공 할 수있는 많은 리소스가 있습니다. 이것은이 기사의 범위를 벗어나기 때문에 설정했다고 가정합니다. 그렇지 않다면 Google은 친구가 될 것입니다.
  • 슈퍼 기본 예
  • 매우 간단한 이메일을 보내려면 코드는 다음과 같습니다.
  • 실제로, 그게 기본 일반 텍스트 이메일을 보내는 것입니다 (작동하지 않으면 Google에 PHP를 올바르게 구성하는 방법을 다시 확인하십시오). 이제 이것이 스크립트에서 어떻게 보이는지 봅시다. 예를 들어, 쿼리가 실패 할 때마다 스크립트가 이메일을 보내 주시기 바랍니다.
  • 쿼리 실행에 예기치 않은 오류가 있으면 어떤 스크립트에 오류가 있고 오류가 있는지 알 수있는 이메일을 받게됩니다.

전체 HTML 메일 예

이제, HTML 본체와 일반 텍스트 대안과 파일 첨부 파일이 포함 된 완전한 멀티 파트 예를 보자.
<?php mail($address, $subject, $message); ?>
로그인 후 복사
기본 개념을보다 쉽게 ​​이해하기 위해보다 일반적인 이메일 스크립트의 일부 측면이 단순화되었지만이 섹션에서는 설명하겠습니다. 먼저,

배열에는 이메일을 공유하려는 일부 이메일 주소로 채워져 있습니다. 배열은 스크립트 끝에 반복되며 각 주소는 내 이메일 사본을받습니다. 다음으로, $emailList 문자열은 다양한 이메일 헤더로 구축됩니다. 문자열의 각 헤더는 CRLF ()로 분리되며 이메일 메시지의 형식을 정의하는 RFC 2822 표준을 준수합니다. "From :"Header의 "Fluffy Mumsy"$headers 다목적 인터넷 메일 확장 rn를 기대하므로 일반 텍스트보다 고급 이메일을 가질 수 있습니다. "내용 유형 : multipart/mixed; boundary ="YagottakeEpemSeparated "RN" "Content-Type"헤더는 실제로 두 가지를 수행합니다. 본문에 여러 가지 다른 유형의 부품이 있으며 각 부품을 분리하는 데 사용되는 문자열을 지정합니다. 이 경계 문자열은 메시지의 다른 곳에서는 나타날 수 없습니다. 그렇지 않으면 메일 클라이언트가 메시지를 올바르게 구문 분석 할 수 없습니다. 예를 들어, "12"를 경계로 사용할 수 있지만 메일의 다른 곳에 나타날 수 있습니다. "YagottakeEpemSeparated"를 선택했습니다.대부분의 사람들은 충돌 가능성이 매우 낮기 때문에 무작위로 생성 된 해시를 경계로 할당합니다. $boundary = md5(time()) (여기서는 스크립트와 동일한 디렉토리에 위치)의 내용은 Base64에 의해 인코딩되고 "블록"으로 분류되어 메일 클라이언트가 더 쉽게 처리 할 수 ​​있도록합니다. 결과는 에 저장되며 나중에 나타납니다. 마지막으로, 이메일 본문의 구성 ... "--yagottakeepemSeparatedrn"이것은 이전에 정의 된 경계를 사용하고 Mail 클라이언트에게 "이봐, 이것은 이메일 메시지의 첫 번째 부분의 시작 부분"이라고 말하는 첫 번째 인스턴스입니다. "Content-Type : multipart/antlanslity; boundary ="Every Amailalaltative "RN"은 전자 메일 헤더에 주어진 "Multipart/Mixed"외에도 본문에서 "multipart/anternative"를 사용하여 다른 경계 (이 분류와 관련하여)를 사용하여 메시지에 대한 대체 형식을 제공 할 수 있습니다. "-Eachemailalnativen"이것은 중첩 된 경계의 첫 번째 인스턴스이며 메시지의 첫 번째 대체 버전을 시작합니다. "Content-Type : Text/Plain; charset ="iso-8859-1 "rn"이 컨텐츠 유형 헤더는이 대안이 일반 텍스트임을 메일 클라이언트에 알려줍니다. 클라이언트가 더 복잡한 형식 (예 : HTML)을 표시 할 수없는 경우이 버전의 메시지를 사용합니다. "Content-Transfer-Encoding : 7bitrn"Content-Transfer-Encoding 헤더는 메시지에 사용 된 인코딩 체계를 지정합니다. 역사적 이유로 "7 비트"는 기본값이므로 생략 할 수 있습니다. 나는 당신에게 알려주기 위해 그것을 포함시켰다. "당신은 돈이없는 저렴한 텍스트 이메일이 있습니다. 무시하십시오. rn"이것은 비 HTML 기능 독자를 사용하는 사람들이 일반 텍스트 버전으로 볼 수 있다는 메시지입니다. "-Eachemailalnativen"첫 번째 대안이 완료되었으며 다음 대안을 시작할 수 있습니다. "Content-Type : Text/Html; charset ="ISO-8859-1 "RN"이 컨텐츠 유형 헤더는 클라이언트 에게이 버전이 HTML로 형식화되고 사용 된 문자 세트를 알립니다. "... RN"이 버전의 내용은 HTML 태그가 포함되어 있음을 제외하고는 일반 텍스트 버전과 매우 다릅니다. 일부 스팸 필터는 이것을 내 메일이받은 편지함에 도달하는 것을 방지하는 또 다른 이유로 볼 수 있습니다. "--yagottakeepemseparatedrn"이것은 멀티 파트/혼합 경계이며, 모든 대안이 포함 된 메시지 본문 섹션의 끝에 도달했음을 나타냅니다. "content-type : application/zip; name ="novyrus.zip "rn"콘텐츠 유형 헤더는 이메일의 다음 부분이 첨부 파일 ( 파일)임을 나타냅니다. "Content-Transfer-Encoding : Base64rn"7 비트 인코딩은 문자를 7 비트로 제한하며 ZIP 파일에 필요한 모든 이진 문자를 충실히 나타내지 않을 수 있으므로 파일이 Base64 인코딩 및 청크입니다. 여기에서 Content-Transfer-Encoding 헤더를 사용하면 클라이언트가 첨부 파일을 해독하는 방법을 알려줍니다. "Content-Disposition : AttachmentRn"컨텐츠 방지 헤더는 컨텐츠가 어떻게 렌더링되는지를 자세히 설명합니다.메시지에서 zip 파일을 인라인 요소로 표시하는 것은 의미가 없지만 이미지를 포함시키는 데 매우 유용합니다. 첨부 된 파일의 내용은 단순히 믹스에 덤프됩니다. "-YagottakeEpemSeparated-"이것은 최종 경계이며, 선언은 콘텐츠없이 끝에 더블 대시 세트를 추가하여 끝납니다. $goodAttachment . "rn" 요약

그게 다야! 초음파 텍스트 이메일과 첨부 파일이 포함 된 전체 HTML 이메일을 보내는 방법을 배웠습니다. 간단한 이메일은 단순히 기능을 호출합니다. HTML 메시지의 경우 MIME 표준을 사용하여 이메일을 섹션으로 나누고 선택한 경계와 분리해야합니다. 그런 다음 내용의 내용, 인코딩 방법, 컨텐츠 처리 방법 및 컨텐츠 자체를 정의합니다. 이메일을 보내려고하는 사람에 따라, 정말로 진지한 것을 보내고 싶을 경우를 대비하여 이메일을 스팸으로 표시 할 가능성이 무엇인지 알고 있어야합니다. Photosani / ShutterStock의 사진 php 로 이메일을 보내는 것에 대한 FAQ (FAQ 부품은 길이가 너무 길고 의사 원리 목표와 일치하지 않기 때문에 여기서 생략됩니다. FAQ 부분의 내용은 원본 텍스트와 일치합니다. 단순한 진술을 원본 텍스트로 조정하여 유사 원리를 완성합니다.) .

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

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