PHP는 Yandex smtp를 통해 메일을 보냅니다. 로컬 서버에서 SMTP를 통해 메일 보내기
PHPMailer는 매우 편리하고 인기 있는 라이브러리입니다. 이메일 보내기귀하의 사이트에서 보낸 메시지. 이 문서에서는 라이브러리의 기본 설정을 설명하고 메시지 전송을 위한 코드 예제를 제공합니다. PHPMailer에는 메일 작업에 필요한 모든 기능이 포함되어 있습니다. 다른 방법으로, 다음을 포함한 다양한 서버를 통해 smtp를 통해 편지를 암호화하고 서명하여 스팸으로 분류되지 않도록 하는 기능 등이 있습니다.
https://github.com/PHPMailer/PHPMailer("복제 또는 다운로드" 버튼)에서 PHPMailer 라이브러리를 다운로드할 수 있습니다.
먼저 몇 가지를 살펴보겠습니다. 간단한 예 PHPMailer를 사용하여 이메일을 보내는 방법을 명확하게 합니다.
PHPMailer를 사용하여 mail() 함수를 통해 이메일 보내기
호스팅에서 이메일을 보내려면 메일 서버, 모든 것이 매우 간단하며 다음과 같이 보일 것입니다.
// PHPMailer 라이브러리를 포함합니다. PHPMailer\PHPMailer\PHPMailer를 사용합니다. "PHPMailer/PHPMailer.php"가 필요합니다. // 편지 만들기 $mail = new PHPMailer(); $mail->setFrom(" [이메일 보호됨]", "Ivan Ivanov"); // 보낸 사람 (이메일 및 이름) $mail->addAddress(" [이메일 보호됨]", "Vasya Petrov"); // 받는 사람 (이메일 및 이름) $mail->Subject = "Test"; // 편지 제목 // HTML 텍스트편지 $mail->msgHTML("
안녕하세요!
이것은 테스트 편지입니다.
"); // 보내기 if ($mail->send()) ( echo "메시지가 전송되었습니다!"; ) else ( echo "오류: " . $mail->ErrorInfo; )보시다시피 모든 것이 매우 간단합니다. 도서관을 연결하고 누구에게, 누구에게 편지의 제목과 텍스트를 입력하여 보냅니다. 이 방법으로 이메일을 보내는 것은 도메인의 이메일 주소에서만 작동합니다(다른 메일러에 연결되지 않은 경우).
Yandex 및 Google의 예를 사용하여 PHPMailer를 사용하여 SMTP를 통해 이메일 보내기
예를 들어 다음과 같은 다른 우편물을 통해 편지를 보낼 수도 있습니다. 얀덱스. 코드는 다음과 같습니다.
// PHPMailer 라이브러리를 포함합니다. PHPMailer\PHPMailer\PHPMailer를 사용합니다. PHPMailer\PHPMailer\SMTP를 사용하십시오. "PHPMailer/PHPMailer.php"가 필요합니다. "PHPMailer/SMTP.php"가 필요합니다. // 편지 만들기 $mail = new PHPMailer(); $mail->isSMTP(); // SMTP를 통해 보내기 $mail->Host = "smtp.yandex.ru"; // SMTP 서버 주소 $mail->SMTPAuth = true; // SMTP 인증 활성화 $mail->Username = "login"; // 사용자 이름(도메인 및 @ 제외) $mail->Password = "password"; // 비밀번호 $mail->SMTPSecure = "ssl"; // SSL 암호화 $mail->Port = 465; // 연결 포트 $mail->setFrom(" [이메일 보호됨]", "Ivan Ivanov"); // 보낸 사람 $mail->addAddress(" [이메일 보호됨]", "Vasya Petrov"); // $mail->Subject = "Test"; $mail->msgHTML("
안녕하세요!
이것은 테스트 편지입니다.
"); // 보내기 if ($mail->send()) ( echo "메시지가 전송되었습니다!"; ) else ( echo "오류: " . $mail->ErrorInfo; )Google을 통해 이메일 보내기한 가지 주의사항이 있습니다. 구글 계정 신뢰할 수 없는 애플리케이션에 대한 액세스 허용. 이렇게 하려면 https://myaccount.google.com 계정에 로그인하고 보안으로 이동한 후 '계정에 액세스할 수 있는 신뢰할 수 없는 애플리케이션' 섹션으로 이동하여 '허용됨'으로 전환해야 합니다. 글을 쓰는 시점에서 이 페이지는 https://myaccount.google.com/u/0/lesssecureapps입니다.
$mail->호스트 = "smtp.gmail.com"; // SMTP 서버 주소 $mail->SMTPAuth = true; // SMTP 인증 활성화 $mail->Username = "login"; // 사용자 이름 $mail->Password = "password"; // 비밀번호 $mail->SMTPSecure = "ssl"; // SSL 암호화 $mail->Port = 465; // 연결 포트
smtp로 보내기 프로그램을 처음 실행하는 경우에는 보내기 전에 추가로 사용하는 것이 좋습니다. $mail->SMTPDebug = 1;클라이언트와 smtp 서버로부터 모든 메시지를 수신합니다. 즉, 연결, 인증 등의 전체 프로세스가 화면에 표시되므로 프로그램 디버깅에 매우 유용합니다.
PHPMailer를 사용하여 첨부 파일이 포함된 이메일 보내기
여기에서는 모든 것이 매우 간단합니다. 방법을 사용하면됩니다. 첨부파일 추가. 예를 들면서 동시에 몇 가지를 더 보여 드리겠습니다. 추가 기능:
// PHPMailer 라이브러리를 포함합니다. PHPMailer\PHPMailer\PHPMailer를 사용합니다. PHPMailer\PHPMailer\Exception을 사용하십시오. "PHPMailer/PHPMailer.php"가 필요합니다. "PHPMailer/Exception.php"가 필요합니다. // 편지 만들기 $mail = new PHPMailer; $mail->CharSet = "UTF-8"; $mail->setFrom(" [이메일 보호됨]", "Ivan Ivanov"); // 보낸 사람 $mail->addReplyTo(" [이메일 보호됨]", "Ivan Ivanov"); // 반환 주소 $mail->addAddress(" [이메일 보호됨]", "Vasya Petrov"); // 받는 사람 $mail->Subject = "Test"; // 제목 $mail->msgHTML(file_get_contents("contents.html"), __DIR__); // "body" 가져오기 파일의 문자 $mail->AltBody = "Plain text letter"; // 클라이언트가 html을 지원하지 않는 경우 일반 텍스트 문자 $mail->addAttachment("my_file.txt") // 하나의 파일 첨부 $mail- >addAttachment("phpmailer) .jpg"); // 두 번째 파일 첨부 // Send if ($mail->send()) ( echo "Message sent!"; ) else ( echo "Error: " . $mail- >오류정보 )
addAddress를 사용하여 여러 수신자 주소를 추가할 수 있습니다. 또는 필요한 경우 다음 방법을 사용하여 모든 수신자 주소를 지울 수도 있습니다. 클리어주소(). 다음을 사용하여 모든 첨부 파일을 지울 수 있습니다. 클리어어태치먼트().
당신은 또한 사용할 수 있습니다 내장된 이미지 추가 HTML 코드에 사용하기 위한 첨부 파일(일반적으로 이미지)을 이메일에 추가하려면 다운로드할 수 없습니다. 다운로드할 수 없는 편지에 그림을 사용하는 예:
// PHPMailer 라이브러리를 포함합니다. PHPMailer\PHPMailer\PHPMailer를 사용합니다. "PHPMailer/PHPMailer.php"가 필요합니다. //편지 만들기 $mail = new PHPMailer; $mail->IsHTML(true); $mail->setFrom(" [이메일 보호됨]", "이반 이바노프"); $mail->addAddress(" [이메일 보호됨]", "Vasya Petrov"); $mail->Subject = "Test"; $mail->AddEmbeddedImage("phpmailer.jpg","testImage"); $mail->Body = "
HTML 코드의 이미지
"; // $mail 보내기->send();그래서 보낼 수 있습니다 이미지가 있는 편지, 편지 본문에만 있고 첨부 파일로 다운로드 할 수 없습니다. 이러한 이미지는 편지의 HTML 코드 어디에서나 사용할 수 있으며, URL 주소 대신 AddEmbeddedImage에서 사용한 이미지 cid를 지정하기만 하면 됩니다.
PHPMailer를 통해 서명되고 암호화된 이메일 보내기
기본적으로 PHPMailer는 보낸 모든 메시지를 암호화합니다. 다음 코드를 사용하여 SMTP를 통해 이메일을 보낼 때만 이메일 암호화를 비활성화할 수 있습니다.
$mail->SMTPSecure = 거짓; $mail->SMTPAutoTLS = 거짓;
에게 DKIM 서명으로 편지에 서명하세요, 여러 단계를 수행해야 합니다.
- 도메인에 대한 개인 및 공개 키 생성
- 공개 키를 사용하여 TXT 도메인에 대한 DNS 레코드 추가
- 이메일을 보내기 전에 PHPMailer에서 DKIM 서명을 구성하세요.
이제 각 단계에 대해 좀 더 자세히 설명하겠습니다.
개인 및 공개 키 생성
Linux 호스팅이 있고 Shell에 액세스할 수 있는 경우 키 파일을 생성하는 것은 일반 사용자 권한으로 2개의 명령만 실행하면 됩니다.
Openssl genrsa -out test-private.pem 1024 openssl rsa -in test-private.pem -out test-public.pem -pubout
각기, 테스트-private.pem그리고 test-public.pem- 개인 키와 공개 키입니다. 사이트 방문자나 귀하를 제외한 다른 사람이 접근할 수 없는 폴더에 저장해야 합니다.
셸에서 명령을 실행할 수 없는 경우 개인 및 공개 키를 생성하여 파일에 저장하려면 다음 코드를 사용할 수 있습니다.
$domain = "test.ru"; // 귀하의 도메인 $privatekeyfile = "test-private.pem"; // 개인키가 기록될 파일명 $publickeyfile = "test-public.pem"; // 공개 키가 기록될 파일 이름 if (file_exists($privatekeyfile)) ( echo "
기존 키 사용
"; $privatekey = file_get_contents($privatekeyfile); $publickey = file_get_contents($publickeyfile); ) else ( echo "키 생성"; $pk = openssl_pkey_new([ "digest_alg" => "sha256", "private_key_bits" => 2048, "private_key_type" => OPENSSL_KEYTYPE_RSA, ]); openssl_pkey_export_to_file($pk, $privatekeyfile); $pubKey = openssl_pkey_get_details($pk ); $publickey = $pubKey["key"]; file_put_contents($publickeyfile, $publickey);
개인 키(비공개로 유지하세요!):
" . $privatekey . ""; 에코 "
공개 키:
" . $공개키 ."";
주목!파일이 저장될 폴더에 쓰기 가능한지 확인하는 것을 잊지 마세요.
공개 키를 사용하여 DNS 레코드 추가
편지를 받을 메일 서버가 도메인의 DNS 레코드를 읽어 편지의 서명을 확인할 수 있도록 하려면 DNS 레코드가 필요합니다. 일반적으로 도메인 제어판이나 호스팅 제어판에서 DNS 레코드를 추가할 수 있습니다. 항목을 추가하는 방법을 모르는 경우 호스팅 공급자의 지원에 문의하세요.
다음과 같이 DNS 레코드를 추가해야 합니다.
항목 이름: mail._domainkey.test.ru. (마지막에 점 "."이 있습니다)
TTL: 3600 (또는 기본값이 될 것임)
게시물 유형: TXT
의미: v=DKIM1; h=sha256; t=s; p=YOUR_PUBLIC_KEY
항목 이름에 test.ru도메인 이름으로 바꿔야 합니다. "YOUR_PUBLIC_KEY"라는 단어를 "-----BEGIN PUBLIC KEY-----" 및 "------END PUBLIC KEY- 없이 "공개 키" 다음 이전 단계에서 받은 텍스트로 바꿉니다. -- --", 키 자체만 해당됩니다. 이 경우 키의 모든 라인이 필요합니다 하나의 긴 줄로 연결줄 바꿈이 없도록 합니다.
PHPMailer에서 DKIM 서명 설정 및 이메일 보내기
이제 남은 것은 편지를 보내기 전에 몇 가지 PHPMailer 설정을 지정하는 것뿐입니다. 그러면 편지가 서명됩니다. 다음 예를 보면 모든 것이 명확해질 것이라고 생각합니다.
// 라이브러리를 포함합니다. PHPMailer\PHPMailer\PHPMailer를 사용합니다. "PHPMailer/PHPMailer.php"가 필요합니다. // 편지 만들기 $mail = new PHPMailer; $mail->CharSet = "UTF-8"; $mail->setFrom(" [이메일 보호됨]"); $mail->addAddress(" [이메일 보호됨]"); $mail->Subject = "테스트입니다"; $mail->msgHTML("
이것은 테스트입니다
"); // DKIM 서명 설정 $mail->DKIM_domain = "test.ru"; $mail->DKIM_private = "test-private.pem"; $mail->DKIM_selector = "mail"; // $ 보내기 메일->send();물론 test.ru도메인 이름으로 변경해야 하며, 테스트-private.pem키 생성 단계에서 생성된 개인 키 파일의 전체 경로와 이름입니다.
이제 PHPMailer를 통해 전송된 이메일은 개인 키로 DKIM 서명됩니다.
특정 웹 사이트가 효율적이고 생산적으로 작동할 수 있는 기회를 가지려면 가능한 한 책임감 있고 신중하게 웹 사이트 생성에 접근해야 합니다. 온라인 상점을 만드는 데 사용할 시스템 선택에는 특별한 주의가 필요합니다. 사실 상품이나 서비스 판매를 전문으로 하는 상업 플랫폼은 사이트 유지 관리 및 채우기에 관련된 관리자와 온라인 상점 고객 모두에게 필요한 모든 기능을 구현하고 사용하기 쉬워야 합니다. 자신에게 적합한 CMS를 선택해야 하는 문제에 직면한 많은 사람과 회사는 Magento를 선택할지, OkkaCMS를 선택할지 분석합니다. 이러한 웹사이트 엔진의 특징과 성능을 비교해 보겠습니다.
자신의 웹사이트를 만들 때 개인이나 회사는 많은 노력을 기울여야 합니다. 이 경우에만 믿을 수 있습니다. 긍정적인 결과정말 효과적인 도구를 얻는 것입니다. 웹사이트 제작을 시작하기 전에 먼저 해결해야 할 근본적인 질문 중 하나는 가장 적합한 CMS 옵션을 어떻게 결정하느냐 하는 것입니다. 다음으로 두 가지 CMS인 Joomla와okayCMS를 비교하고 각각의 기능에 주목하겠습니다.
자신만의 웹사이트를 갖는 것은 효과적이고 성공적으로 운영되는 비즈니스를 위한 기본 요구 사항 중 하나입니다. 통계에 따르면 인터넷을 통한 다양한 상품 구매 및 서비스 주문 수가 증가한 것으로 나타났습니다. 이를 고려하여 대부분의 상업 회사는 이미 자체 웹 사이트의 필요성을 인식하고 있습니다. 그러나 인터넷 리소스를 보유하고 있다는 단순한 사실만으로는 그 효율성, 수익성 및 기대되는 비즈니스 이점을 기대하기에 충분하지 않습니다.
자신만의 웹사이트를 만들거나 온라인 상점을 오픈하려고 준비할 때, 많은 문제를 고려하고 분석하고 다양한 문제를 해결해야 합니다. 이 경우에만 귀하의 프로젝트가 긍정적인 결과를 가져오고 귀하의 기대를 완전히 충족시킬 수 있다는 사실을 믿을 수 있습니다. 온라인 상점 개발과 관련된 다양한 문제 중 CMS 선택 문제는 특히 주목할 만합니다. 귀하가 최적의 엔진을 스스로 쉽게 결정할 수 있도록
미래의 온라인 상점을 위한 자체 웹 사이트를 만들 계획을 세울 때 상당히 많은 수의 사람들과 심지어 판매 전문 회사조차도 기존 CMS 중 무엇을 선택할 것인지 어렵고 매우 중요한 선택에 직면합니다. 무엇을 선택할지 고민 중이라면 PrestaShop 또는 OKCMS를 읽어 보시기 바랍니다. 여기서는 인터넷 사이트, 특히 온라인 상점을 만들기 위한 두 시스템을 비교할 것입니다.
2019-08-05
안녕하세요, 방문객 여러분!
블로그 업데이트가 늦어진 점 양해 부탁드립니다. 그러나 이에 대한 완전히 이해 가능한 설명이 있습니다. 결국 여름, 다차, 손님, 숲, 물 등이 있었기 때문에 웹 사이트를 만드는 문제를 해결할 수 없었습니다. 그런데 이제 좀 여유가 생겼고, 손님들도 떠났고, 이제는 확실히 이것에 주의를 기울일 수 있을 것 같아요.
따라서 지난 기사에서 우리 도메인의 메일을 메일 서비스 중 하나에 연결한 후 이제 사이트에서 이메일을 보내는 방법을 살펴보겠습니다. 더욱이, 우리의 편지가 SPAM으로 끝나지 않고 높은 확률로 수신자에게 안정적으로 전달되는 방식으로 말입니다.
일반적으로 PHP에는 편지를 보내는 mail() 함수가 내장되어 있습니다. 그러나 이 방법의 단순성에도 불구하고(이 경우 문자를 보내려면 특정 매개 변수를 사용하여 한 줄의 코드만 지정하면 충분함) 이 옵션을 사용하면 SPAM 문제와 관련된 심각한 단점이 있습니다. .
사실 수신자 측 메일 서버의 스팸 방지 필터는 실제로 mail() 기능을 통해 전송된 편지를 선호하지 않습니다. 그리고 대부분의 경우 이러한 메시지는 수취인에게 도달하기 전에 필터링되거나 삭제되기도 합니다.
그리고 이러한 경우를 최대한 없애기 위해 일반적으로 타사 메일 서비스에서 보낸 것처럼 편지를 보내는 또 다른 옵션이 사용됩니다.
이 방법을 인증을 통해 SMTP를 통해 메일을 보내는 것입니다. 오늘은 양식 제출의 예를 사용하여 살펴보겠습니다. 피드백. 또한 이를 위해 꽤 유명하고 인기 있는 PHPMailer 라이브러리를 사용하여 SMTP를 통해 보내는 편지를 매우 간단하게 구성할 수 있습니다.
- 피드백 편지를 보내는 방법
- 피드백 양식 만들기
- PHPMailer 라이브러리 설치
- SMTP를 통해 메일을 보내기 위한 스크립트를 만듭니다.
- 이메일 발송 확인 중
- 소스 파일대지
피드백 편지를 보내는 방법
시작하기 전에 실무피드백 편지를 보낸 후 먼저 어떻게 할지 결정하겠습니다.
피드백 양식은 사용자가 사이트 관리자와 소통하고 메시지를 전달할 수 있도록 설계되었습니다. 일반적으로 이 양식은 여러 필드와 "제출" 버튼으로 구성됩니다.
원칙적으로 이메일을 보내려면 다음과 같이 사용자 및 메시지 내용에 대한 충분한 정보를 제공하는 몇 가지 필드만 사용하면 충분합니다.
- "이름" - 메시지 보낸 사람의 이름을 입력합니다.
- "이메일" - 주소용 이메일보내는 사람;
- "메시지 제목";
- "메시지 텍스트".
다른 사람을 추가할 수도 있지만. 예를 들어 전화번호(정말 필요한 경우)입니다.
우리의 경우 이러한 편지는 도메인이 연결된 메일 서비스에 대한 승인을 받아 실제 사서함에서 사이트 관리자의 주소로 전송됩니다.
이전 기사에서는 도메인 메일과 Yandex.Mail 서비스의 연결을 확인하는 데 중점을 두었으므로 이 옵션에 대한 메일을 보내겠습니다. 이것은 중요하지 않지만. 아래에는 변경 시 Mail.ru 메일 서버를 통해 이메일을 보낼 수 있는 옵션이 표시됩니다.
편지가 전송되는 실제 사서함으로 새로 생성된 도메인 메일 사용자의 계정을 주소와 함께 사용합니다. [이메일 보호됨]. 그리고 우리는 이 편지를 다음에게 보낼 것입니다. 사서함관리자 [이메일 보호됨], 이전 기사에서 이전에 만든 것입니다.
따라서 피드백 양식의 편지를 보낸 사람이 사서함이 됩니다. [이메일 보호됨]., 그리고 수신자 - [이메일 보호됨]. 이 경우, 메시지를 보낸 사용자에 대한 모든 정보와 그 내용이 보낸 편지의 본문에 포함되어 전송됩니다.
피드백 양식 만들기
편지를 보내는 절차를 결정한 후에는 이를 수행할 피드백 양식을 작성하겠습니다.
다음은 "연락처" 페이지(기사 디렉토리의 kontakty.php 파일)에 배치할 이 양식의 HTML 코드입니다.