Php mail болон smtp үйлдлийн зарчим. Имэйл илгээх (SMTP vs

Гэр / Хатуу дискүүд

Локал серверээс SMTP-ээр захидал илгээх нь локал машин эсвэл энгийн сервер дээр байрлах сайтаас мессеж илгээхийг шалгах боломжийг танд олгоно. Үүнийг хийхийн тулд та Yandex, Google эсвэл mail.ru ямар ч мэйл үйлчилгээг ашиглаж болно.

Юуны өмнө SMTP (Simple Mail Transfer Protocol) нь өргөн хэрэглэгддэг сүлжээний протокол, дамжуулах зориулалттай имэйл TCP/IP сүлжээнд. Бүх алдартай имэйл үйлчилгээнд ийм протокол байдаг.

Орон нутгийн серверүүд гарч ирснээр бие даасан скрипт эсвэл cms системийн гүйцэтгэлийг шалгахын тулд хостинг үйлчилгээ үзүүлэгчийг сонгох шаардлагагүй болж, төлбөр төлөхөөс хамаагүй бага болсон. Бүх зүйлийг компьютер дээр туршиж үзэх нь илүү хялбар бөгөөд дараа нь та "хийсэн" зүйлээ хүн бүрт харуулах боломжтой.

Эдгээр серверүүдийн ихэнх нь аль хэдийн суулгагдсан байдаг програм хангамжмэйлтэй ажиллахад шаардлагатай функцийг агуулсан тул та үүнийг зөв тохируулах хэрэгтэй.

Ийм захидлын ажиллагааг шалгахын тулд хамгийн багадаа:

  • Та Openserver-ийг дотоод сервер болгон ашиглаж болно.
  • Мөн энгийн скрипт, түүний загварыг доороос олж болно.
  • Та ямар ч мэйл сервер ашиглаж болно.

SMTP скрипт тохируулгаар php имэйл илгээж байна

Доор хуулж болох эсвэл ижил төстэй олон зуун сайтаас татаж авах боломжтой энгийн скрипт загварыг засварлах шаардлагатай.

Эхлээд та скрипт загвар дахь зарим утгыг өөрчлөх хэрэгтэй.
руу — шуудангийн мессежийг илгээх шуудангийн хаяг руу шилжих.
сэдэв - захидлын сэдэв
мессеж - мессеж өөрөө эсвэл захидлын үндсэн хэсэг.

Миний скриптийн жишээ:

Та мэдээжийн хэрэг, функцийг бага зэрэг өргөжүүлж, скрипт дээр захидал илгээх тухай мессежийг харуулах боломжтой. Хэдийгээр үнэн хэрэгтээ энэ нь илгээлтийг SMTP сервер бөгөөд скрипт нь зөвхөн мессеж үүсгэдэг.

Жишээлбэл, та үүнийг бичиж болно:

Орлуулсан бүх утгууд нь хашилтанд байх ёстой, эс тэгвээс скрипт нь алдаа гаргах болно. Үүний дараа та скриптийг дотоод серверийн хавтсанд хадгалах боломжтой.

Жишээ нь: domains/send/index.php SMTP opensrerver-ээр имэйл илгээх тохиргоог эхлүүлнэ үү.

Захидал утгын оронд скриптэд заасан дурын хаяг руу ирнэ 'т' , гэхдээ энэ имэйлийг нээлттэй серверийн тохиргоонд заасан яг SMTP-ээр боловсруулж илгээх болно.

  1. Серверийг эхлүүлж байна
  2. Нээлттэй серверийн модулийг "мэйл" цэсэнд тохиргоотой нээнэ үү
  3. Бид зурагт үзүүлсэн шиг бүх талбарыг бөглөж, Yandex дээрх жинхэнэ шуудангийн хайрцгаас хэрэглэгчийн нэр, илгээгчийн имэйл, нууц үгийг орлуулна.

Бид тохиргоог хадгалж, серверийг дахин ажиллуулсны дараа та скриптэд өөрөө хандах боломжтой. "Миний сайтууд" хавтсаас өмнө нь хадгалсан index.php скрипт байрлах "илгээх" хавтсыг нээнэ үү.

Энэ скриптэд хандмагц шинэ хөтчийн цонхонд скрипт дууссаныг илтгэх мэдээлэл гарч ирнэ.

Үүний дараа та өөрийгөө шалгах хэрэгтэй шуудангийн хайрцаг, хэний хаягийг скриптэд заасан, захидал ирсэн эсэх.

Хэрэв энэ нь байхгүй бол энэ нь ямар нэг зүйл буруу тохируулагдсан эсвэл захидал спам хавтсанд орсон гэсэн үг юм.

Бусад бүх тохиргоо нь ижил төстэй харагдаж байна, гэхдээ ямар ч тохиолдолд нэмэлт мэдээлэлөвдөхгүй.

SMTP mail ru-ээр захидал илгээхийг тохируулахын тулд та Yandex параметрүүдийг mail ru параметрээр солих хэрэгтэй.

Тэгээд тэр болгонд дахин бүтээн байгуулалт хийхгүйн тулд локал сервер, өөр өөр нээлттэй серверийн профайлыг тохируулах нь хамгийн сайн арга юм. Үүнийг хэрхэн яаж хийхийг видео зааварт үзүүлэв.

Энэ тохиолдолд профайлыг зүгээр л ачаалахад хангалттай бөгөөд серверийг дахин эхлүүлсний дараа энэ профайлд заасан бүх тохиргоо бэлэн болно. Энэ бол маш тохиромжтой зүйл бөгөөд маш энгийнээр ажилладаг.

Профайл бүрийн хувьд (энэ нь юу гэж нэрлэх нь хамаагүй) өөр өөр параметр бүхий скрипт, cms систем, програм ашиглахаар төлөвлөөгүй бол өөрийн тохиргоог хийх ёстой.
Үгүй бол та анхдагч тохиргоог хийж болно.

SMTP mail ru-ийн хувьд энд бүх зүйл ижил байна.

Yandex өгөгдлийг mail ru өгөгдөл болгон өөрчилсөн

smtp google-ээр дамжуулан захидал илгээж байна

Google SMTP-ээр шуудан илгээхийг тохируулахын тулд бага зэрэг хүчин чармайлт шаардагдана.

Нэгдүгээрт, Google дээр профайл үүсгэх нь бусад Yandex болон mail ru системүүдээс илүү хэцүү байдаг
Хоёрдугаарт, та нэвтрэх мэдээллээ өгсөн байсан ч систем зүгээр л захидал нэвтрүүлэхгүй. Эхлэхийн тулд тэрээр цаашдын зааврын талаар шаардлагатай бүх мэдээллийг агуулсан захидал илгээх болно.

Үгүй бол Google-ийн хувьд энэ нь яг ижил аргаар тохируулагдсан байдаг. Зөвхөн бүх өгөгдөл өөрчлөгддөг.

Бусад SMTP-ээр захидал илгээхийг тохируулахын тулд бүх өгөгдөл ойролцоогоор ижил байх болно.

Хэрэв бүх зүйл танд тохирсон бөгөөд захидал заасан хаяг хүлээн авагчид хүрсэн бол бүх зүйл зөв хийгдсэн болно. Хэрэв та сэтгэгдэл дээр туршлагаа хуваалцвал маш сайн байх болно.

PHP руу шуудан илгээх

Энэ функц нь анхдагчаар имэйл илгээх хэлбэрээр хэрэгждэг. Энэ функц нь имэйлийг дамжуулахын тулд гуравдагч талын сервер шаарддаггүй. Энэ функцийн зөв эсэхийг шалгахын тулд сайттай хавтсанд test.php файл үүсгээд дараах кодыг байрлуулна уу.

Оронд нь хаана "EMAILХүлээн авагч" Захиа илгээх имэйл хаягаа оруулна уу.

Газар энэ файлтаны сайтын үндэс дээр.

Дараа нь хаягийн мөрөнд www.YourDomain/test.php гэж оруулна уу. Хэрэв заасан имэйл хаягаар захидал ирсэн бол таны хостинг захидал илгээх функцтэй зөв ажилладаг. PHP руу шуудан илгээх". Энэ захидал спам болж дууссан байж магадгүй тул үүнийг шалгах шаардлагатай байна.

Хэрэв захидал ойлгомжгүй кодчилолтой ирсэн бол мөрийг өөрчил: "Имэйл илгээхийг шалгаж байна"дээр "Мэйл илгээхийг шалгаж байна", "Агуулгын төрөл: текст/html; charset=utf-8".

Мөн хөтчийнхөө хаягийн талбараар дамжуулан захидлыг дахин илгээнэ үү.

Хэрэв дээрх залилангийн дараа тестийн захидал эцсийн хүлээн авагчид хүрэхгүй бол та хостинг техникийн дэмжлэгтэй холбоо барина уу.

Алдаа дутагдлуудын дунд энэ аргаАжил нь байнгын биш гэдгийг тэмдэглэх нь зүйтэй энэ арга. Хостинг тал дээр имэйл илгээхэд тасалдал гарч болзошгүй.

Энэ аргын гол сул тал нь үйлчлүүлэгчийн имэйлд илгээсэн бүх захидлыг шуудангийн үйлчилгээнүүд (gmail, mail.ru, yandex.ru) таны вэбсайтаас шууд илгээсэн тул хүлээн зөвшөөрөхгүй байх явдал юм.

Gmail мэйл үйлчилгээ нь эдгээр үсгийг асуултын тэмдэг болон гарын үсэгтэй харуулдаг: "Gmail систем энэ захиаг YourDomain домэйноос илгээсэн гэдгийг баталгаажуулж чадсангүй. Энэ нь спам байж магадгүй."

Энэ байдлаас зайлсхийхийн тулд .

SMTP (Энгийн шуудан дамжуулах протокол)

SMTP - шуудан дамжуулах протокол. Нийтдээ энэ протоколыг ашиглан шуудангийн дамжуулалтыг тохируулахын тулд танд SMTP сервер өөрөө хэрэгтэй. yandex.ru корпорацийн (домайн) имэйлийг SMTP сервер болгон ашиглах хамгийн түгээмэл сонголт бол https://pdd.yandex.ru/ юм.

Юуны өмнө энэ нь зайлшгүй шаардлагатай Yandex данс (мэйл), үүний үндсэн дээр таны домэйнд имэйл үүсгэх болно: “order@YourDomain” “info@YourDomain”... Үндсэн бүртгэл нь хаана ч харагдахгүй бөгөөд зөвхөн ирээдүйд түүн дээр тулгуурлан домэйн имэйл үүсгэхэд ашиглагдана.

Таны хувийн Yandex дансанд зөвшөөрөл авсны дараа https://pdd.yandex.ru/ холбоос дээр домэйн шуудан үүсгэгдэнэ. Энэ бол хэрэглэгчид "Илгээгч" талбарт харагдах домэйн имэйл юм.

SMTP-ээр имэйл илгээх үед "Илгээгч" талбар шаардлагатай. SMTP ашиглан захидал илгээх нь " Домэйн" - "Имэйл", ингэснээр захидлуудыг шуудангийн үйлчилгээгээр хүлээн зөвшөөрдөг.


Энэ аргын сул талуудын дунд шуудангийн үйлчилгээнүүд өөрсдөө энэ функцийг хараахан хангаагүй байгаа тул домэйны шуудангийн хөрөг зургийг "ачаалах" боломжгүйг тэмдэглэх нь зүйтэй.

SMTP-ээр захидал илгээх тохиргоо

Вэбсайт бүтээгчид Joomla CMS ашиглан вэбсайтын имэйлтэй холбоотой асуудалтай тулгардаг тохиолдол байдаг. Жишээлбэл, маягтаар захидал илгээх үед санал хүсэлтДараах төрлийн алдаа гарч болзошгүй. "Мэйлийн функцийг эхлүүлж чадсангүй"эсвэл "Мэйлийн функцийг дуудаж чадсангүй". Мөн алдаагүй захидал илгээх боломжтой боловч үр дүнд нь энэ нь хаяг хүлээн авагчид хүрэхгүй хэвээр байна.

Эдгээр асуудал яагаад шуудантай холбоотой байдаг вэ? Энэ асуултад хариулахын тулд та хяналтын самбар дээрх "Систем" - "Ерөнхий тохиргоо" - "Сервер" таб - "Мэйлийн тохиргоо" хэсэгт очих хэрэгтэй.

CMS Joomla нь захидал илгээх гурван механизмаар хангадаг: PHP Mail, Sendmail, SMTP. Анхдагч байдлаар, PHP Mail ашигладаг бөгөөд энэ нь ихэвчлэн ашигласан хостингын тохиргоотой холбоотой асуудал үүсгэдэг.

Дээр дурдсан зүйлс дээр үндэслэн бид хостинг үйлчилгээ үзүүлэгчээс тусламж хүсэх эсвэл захидал илгээх Sendmail эсвэл SMTP аргыг ашигладаг. SMTP ашиглахад анхаарлаа хандуулцгаая.

SMTP ашиглан захидал илгээх тохиргоо

SMTP (Simple Mail Transfer Protocol) нь цахим шуудан дамжуулахад ашигладаг сүлжээний протокол юм. SMTP-г ашиглахын тулд та ашиглах тодорхой имэйл серверийн тохиргоог зөв хийх ёстой.

Харахын тулд SMTP тохиргоо, та "Илгээх арга" дотроос "SMTP"-г сонгох ёстой. Yandex, Mail, Gmail, Rambler, Yahoo зэрэг алдартай имэйл серверүүдийн тохиргоо бүрийг харцгаая.

Yandex-д зориулсан SMTP тохиргоо

  1. Вэб сайтын имэйл: yandex.ru дээрх шуудангийн хайрцаг, жишээлбэл: [имэйлээр хамгаалагдсан]
  2. SMTP аюулгүй байдал: SSL
  3. SMTP серверийн порт: 465
  4. SMTP хэрэглэгчийн нэр: yandex.ru дээрх шуудангийн хайрцагт нэвтрэх, жишээлбэл: хасанов (@yandex.ru-гүй)
  5. SMTP сервер: smtp.yandex.ru

Мэйл-д зориулсан SMTP тохиргоо

  1. Вэб сайтын имэйл: mail.ru дээрх шуудангийн хайрцаг, жишээлбэл: [имэйлээр хамгаалагдсан]
  2. Захидал илгээгч: "Илгээгч" талбарт хүлээн авагчийн харуулах бичилт
  3. Мэйл илгээхийг идэвхгүй болгох: асаах/унтраах. масс шуудангийн функцууд
  4. SMTP сервер дээрх зөвшөөрөл: Тийм
  5. SMTP аюулгүй байдал: SSL
  6. SMTP серверийн порт: 465
  7. SMTP хэрэглэгчийн нэр: mail.ru дээрх шуудангийн хайрцаг, жишээлбэл: [имэйлээр хамгаалагдсан]
  8. SMTP нууц үг: шуудангийн хайрцагны нууц үг
  9. SMTP сервер: smtp.mail.ru

Gmail-д зориулсан SMTP тохиргоо

  1. Вэб сайтын имэйл: gmail.com дээрх шуудангийн хайрцаг, жишээ нь: [имэйлээр хамгаалагдсан]
  2. Захидал илгээгч: "Илгээгч" талбарт хүлээн авагчийн харуулах бичилт
  3. Мэйл илгээхийг идэвхгүй болгох: асаах/унтраах. масс шуудангийн функцууд
  4. SMTP сервер дээрх зөвшөөрөл: Тийм
  5. SMTP аюулгүй байдал: SSL
  6. SMTP серверийн порт: 465
  7. SMTP хэрэглэгчийн нэр: gmail.com шуудангийн хайрцаг, жишээ нь: [имэйлээр хамгаалагдсан]
  8. SMTP нууц үг: шуудангийн хайрцагны нууц үг
  9. SMTP сервер: smtp.gmail.com

Rambler-д зориулсан SMTP тохиргоо

  1. Вэб сайтын имэйл: rambler.ru дахь шуудангийн хайрцаг, жишээлбэл: [имэйлээр хамгаалагдсан]
  2. Захидал илгээгч: "Илгээгч" талбарт хүлээн авагчийн харуулах бичилт

PHPMailer бол таны вэбсайтаас имэйл илгээх маш тохиромжтой, түгээмэл номын сан юм. Энэ нийтлэл нь номын сангийн үндсэн тохиргоог тайлбарлаж, мессеж илгээх кодын жишээг өгдөг. PHPMailer нь таны шуудантай ажиллахаас хүссэн бүх зүйлтэй байж магадгүй: илгээх янз бүрийн аргаар, янз бүрийн серверүүд, түүний дотор smtp-ээр дамжуулан захидалаа спам болон бусад зүйлд оруулахгүйн тулд шифрлэх, гарын үсэг зурах боломжтой.

Та PHPMailer номын санг https://github.com/PHPMailer/PHPMailer-аас татаж авах боломжтой ("Clone or download" товчлуур).

Эхлээд би хосыг харъя энгийн жишээнүүд PHPMailer ашиглан хэрхэн имэйл илгээхийг тодорхой болгох.

PHPMailer ашиглан mail() функцээр имэйл илгээх

Хэрэв та өөрийн хостингоос имэйл илгээхийг хүсвэл өөрийн шуудангийн сервер, тэгвэл бүх зүйл маш энгийн бөгөөд иймэрхүү харагдах болно:

// PHPMailer номын санд PHPMailer\PHPMailer\PHPMailer ашиглах; "PHPMailer/PHPMailer.php" шаардлагатай; // үсэг үүсгэх $мэйл = new PHPMailer(); $mail->setFrom(" [имэйлээр хамгаалагдсан]", "Иван Иванов"); // хэнээс (имэйл болон нэр) $мэйл->addAddress(" [имэйлээр хамгаалагдсан]", "Вася Петров"); // хэнд (и-мэйл, нэр) $мэйл->Сэдэв = "Тест"; // захидлын сэдэв // html текстүсэг $мэйл->msgHTML("

Сайн байна уу!

Энэ бол туршилтын захидал юм.

"); // Илгээх if ($mail->send()) ( echo "Message илгээгдсэн!"; ) else ( echo "Алдаа: " . $mail->ErrorInfo; )

Таны харж байгаагаар бүх зүйл маш энгийн: бид номын санг холбож, хэнээс, хэнд, захидлын сэдэв, текстийг бөглөж, илгээдэг. Ийм маягаар имэйл илгээх нь зөвхөн таны домэйн дэх имэйл хаягуудаас ажиллах болно (бусад захидлуудтай холбогдоогүй тохиолдолд).

Yandex болон Google-ийн жишээн дээр PHPMailer ашиглан SMTP-ээр имэйл илгээх

Та мөн өөр шуудангаар, жишээлбэл, дамжуулан захидал илгээж болно Yandex. Код нь иймэрхүү харагдах болно:

// PHPMailer номын санд PHPMailer\PHPMailer\PHPMailer ашиглах; PHPMailer\PHPMailer\SMTP ашиглах; "PHPMailer/PHPMailer.php" шаардлагатай; "PHPMailer/SMTP.php" шаардлагатай; // үсэг үүсгэх $мэйл = new PHPMailer(); $мэйл->isSMTP(); // SMTP-ээр илгээх $mail->Host = "smtp.yandex.ru"; // SMTP серверийн хаяг $mail->SMTPauth = үнэн; // SMTP нэвтрэлт танилтыг идэвхжүүлэх $mail->Хэрэглэгчийн нэр = "нэвтрэх"; // таны хэрэглэгчийн нэр (домэйн болон @ байхгүй) $mail->Нууц үг = "нууц үг"; // таны нууц үг $mail->SMTPSecure = "ssl"; // ssl шифрлэлт $mail->Port = 465; // холболтын порт $mail->setFrom(" [имэйлээр хамгаалагдсан]", "Иван Иванов"); // хэнээс $мэйл->addAddress(" [имэйлээр хамгаалагдсан]", "Вася Петров"); // хэнд $mail->Subject = "Тест"; $mail->msgHTML("

Сайн байна уу!

Энэ бол туршилтын захидал юм.

"); // Илгээх if ($mail->send()) ( echo "Message илгээгдсэн!"; ) else ( echo "Алдаа: " . $mail->ErrorInfo; )

Google-ээр дамжуулан имэйл илгээхнэг анхааруулга байна: танд хэрэгтэй google бүртгэл найдваргүй програмуудад хандахыг зөвшөөрөх. Үүнийг хийхийн тулд та https://myaccount.google.com акаунт руугаа орж, аюулгүй байдал руу орж, "Таны бүртгэлд хандах боломжтой итгэмжгүй програмууд" хэсэгт очоод "Зөвшөөрөгдсөн" рүү шилжих хэрэгтэй. Үүнийг бичиж байх үед энэ хуудас нь https://myaccount.google.com/u/0/lesssecureapps байна.

$mail->Host = "smtp.gmail.com"; // SMTP серверийн хаяг $mail->SMTPauth = үнэн; // SMTP нэвтрэлт танилтыг идэвхжүүлэх $mail->Хэрэглэгчийн нэр = "нэвтрэх"; // таны хэрэглэгчийн нэр $мэйл->Нууц үг = "нууц үг"; // таны нууц үг $mail->SMTPSecure = "ssl"; // ssl шифрлэлт $mail->Port = 465; // холболтын порт

Хэрэв та анх удаа smtp-ээр илгээх програмыг ажиллуулж байгаа бол илгээхээсээ өмнө нэмэлт ашиглахыг зөвлөж байна. $мэйл->SMTPDebug = 1;үйлчлүүлэгч болон smtp серверээс бүх мессежийг хүлээн авах, i.e. Холболт, зөвшөөрөл гэх мэт бүх үйл явц дэлгэцэн дээр гарч ирэх бөгөөд энэ нь таны програмыг дибаг хийхэд маш хэрэгтэй болно.

PHPMailer ашиглан хавсралт бүхий имэйл илгээж байна

Энд бүх зүйл маш энгийн, та зөвхөн аргыг ашиглах хэрэгтэй хавсралт нэмэх. Би жишээ хэлье, үүний зэрэгцээ хэд хэдэн зүйлийг харуулах болно нэмэлт функцууд:

// PHPMailer номын санд PHPMailer\PHPMailer\PHPMailer ашиглах; PHPMailer\PHPMailer\Exception ашиглах; "PHPMailer/PHPMailer.php" шаардлагатай; "PHPMailer/Exception.php" шаардлагатай; // үсэг үүсгэх $мэйл = шинэ PHPMailer; $mail->CharSet = "UTF-8"; $mail->setFrom(" [имэйлээр хамгаалагдсан]", "Иван Иванов"); // хэнээс $mail->addReplyTo(" [имэйлээр хамгаалагдсан]", "Иван Иванов"); // буцах хаяг $мэйл->addAddress(" [имэйлээр хамгаалагдсан]", "Вася Петров"); // хэнд $мэйл->Сэдэв = "Туршилт"; // сэдэв $мэйл->msgHTML(file_get_contents("contents.html"), __DIR__); // "бие"-г авах файлын захидлын $mail->AltBody = "Энгийн бичвэр захидал" // хэрэв үйлчлүүлэгч html $mail->addAttachment("my_file.txt" // нэг файлыг хавсаргана); >addAttachment("phpmailer) .jpg"); // хоёр дахь файлыг хавсаргах // Илгээх ($mail->send()) ( echo "Message илгээгдсэн!"; ) else ( echo "Алдаа: " . $mail- >Алдааны мэдээлэл;

Та addAddress ашиглан олон хүлээн авагчийн хаяг нэмж болно. Эсвэл шаардлагатай бол та эсрэгээр энэ аргыг ашиглан бүх хүлээн авагчийн хаягийг устгаж болно тодорхой хаяг(). Та бүх хавсралтыг ашиглан устгаж болно clearAttachments().

Та бас ашиглаж болно AddEmbeddedImage html кодонд ашиглахад зориулагдсан бөгөөд татаж авах боломжгүй хавсралт (ихэвчлэн зураг) нэмэх. Татаж авах боломжгүй захидал дахь зургийг ашиглах жишээ:

// PHPMailer номын санд PHPMailer\PHPMailer\PHPMailer ашиглах; "PHPMailer/PHPMailer.php" шаардлагатай; //Захидал үүсгэх $мэйл = шинэ PHPMailer; $мэйл->IsHTML(үнэн); $mail->setFrom(" [имэйлээр хамгаалагдсан]", "Иван Иванов"); $мэйл->addAddress(" [имэйлээр хамгаалагдсан]", "Вася Петров"); $mail->Subject = "Тест"; $mail->AddEmbeddedImage("phpmailer.jpg","testImage"); $mail->Body = "

HTML код дээрх зураг

"; // $мэйл илгээх->send();

Тиймээс та илгээж болно зураг бүхий үсэг, эдгээр нь зөвхөн захидлын үндсэн хэсэгт байгаа боловч хавсралт болгон татаж авах боломжгүй. Эдгээр зургийг захидлын html кодын хаана ч ашиглаж болно, та url хаягийн оронд AddEmbeddedImage-д ашигласан зургийн cid-ийг зааж өгөхөд л хангалттай.

PHPMailer-ээр гарын үсэг зурсан, шифрлэгдсэн имэйл илгээх

Анхдагч байдлаар, PHPMailer нь илгээсэн бүх мессежийг шифрлэдэг. Та дараах кодыг ашиглан SMTP-ээр имэйл илгээх үед л цахим шуудангийн шифрлэлтийг идэвхгүй болгож болно.

$mail->SMTPSecure = худал; $mail->SMTPAutoTLS = худал;

руу DKIM гарын үсгээр захидалд гарын үсэг зурна уу, та хэд хэдэн алхам хийх хэрэгтэй:

  • Өөрийн домэйны хувийн болон нийтийн түлхүүрүүдийг үүсгэнэ үү
  • Нийтийн түлхүүр бүхий TXT домэйны DNS бичлэгийг нэмнэ үү
  • Имэйл илгээхээсээ өмнө PHPMailer дээр DKIM гарын үсгийг тохируулна уу

Одоо би алхам бүрийг бага зэрэг нарийвчлан тайлбарлах болно.

Хувийн болон нийтийн түлхүүрүүдийг үүсгэх

Хэрэв танд Линукс хостинг байгаа бөгөөд Shell-д хандах боломжтой бол гол файлуудыг үүсгэх нь лийрийг устгахтай адил хялбар бөгөөд та ердийн хэрэглэгчийн эрхээр 2 тушаалыг ажиллуулахад л хангалттай.

Openssl genrsa -out test-private.pem 1024 openssl rsa -in test-private.pem -out test-public.pem -pubout

тус тус, test-private.pemТэгээд test-public.pem- эдгээр нь хувийн болон нийтийн түлхүүрүүд юм. Та тэдгээрийг сайтын зочдод эсвэл чамаас өөр хэн ч ашиглах боломжгүй хавтсанд хадгалах хэрэгтэй.

Хэрэв бүрхүүлд тушаалуудыг гүйцэтгэх боломжгүй бол хувийн болон нийтийн түлхүүрүүдийг үүсгэж файлд хадгалахын тулд та дараах кодыг ашиглаж болно.

$domain = "test.ru"; // таны домэйн $privatekeyfile = "test-private.pem"; // хувийн түлхүүр бичих файлын нэр $publickeyfile = "test-public.pem"; // хэрэв (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, $pkey_file($pkey_get); _дэлгэрэнгүй($pk $publickey = $pubKey["key"] file_put_contents($publickeyfile, $publickey = file_get_contents);

Хувийн түлхүүр (үүнийг нууцлах!):

". $privatekey."
"; цуурай "

Нийтийн түлхүүр:

" . $publickey ."
";

Анхаар!Файлуудыг хадгалах хавтас бичих боломжтой эсэхийг бүү мартаарай.

Нийтийн түлхүүрээр DNS бичлэг нэмж байна

Таны захидлыг хүлээн авах захидлын серверүүд таны домэйны DNS бичлэгийг уншиж захидал дээрх гарын үсгийг баталгаажуулахын тулд DNS бүртгэл шаардлагатай. Ер нь, та өөрийн домэйн хяналтын самбар эсвэл хостинг хянах самбартаа DNS бичлэг нэмж болно. Хэрэв та оруулгыг хэрхэн нэмэхээ мэдэхгүй байгаа бол хостинг үйлчилгээ үзүүлэгчийнхээ дэмжлэгтэй холбоо барина уу.

Та дараах байдлаар DNS бичлэг нэмэх хэрэгтэй:

Оруулсан нэр: mail._domainkey.test.ru. (Төгсгөлд нь "." цэг байна)

TTL: 3600 (эсвэл аль нь өгөгдмөл байх болно)

Нийтлэлийн төрөл: TXT

Утга: v=DKIM1; h=sha256; t=s; p=ТАНЫ_НИЙТИЙН_ТҮЛХҮҮР

Оруулсан нэр дээр test.ruөөрийн домэйн нэрээр солигдох ёстой. Та "НИЙТИЙН_НИЙТИЙН_ТҮЛХҮҮР" гэсэн үгийг "Нийтийн түлхүүр"-ийн дараа өмнөх алхамд хүлээн авсан текстээр "-----ЭХЭЛЛЭХ НИЙТИЙН ТҮЛХҮҮР-----" болон "-----НИЙТИЙН_ТҮЛХҮҮР-ийг дуусгах"гүйгээр солино. -- --", зөвхөн түлхүүр нь өөрөө. Энэ тохиолдолд бүх гол мөрүүд шаардлагатай нэг урт мөрөнд нэгтгэхИнгэснээр мөр тасрахгүй.

PHPMailer дээр DKIM гарын үсгийг тохируулж, имэйл илгээж байна

Захиа илгээхээсээ өмнө PHPMailer програмын цөөн хэдэн тохиргоог хийх л үлдлээ. Дараах жишээ бүх зүйлийг тодорхой болгоно гэж би бодож байна.

// Номын сангийн хэрэглээг PHPMailer\PHPMailer\PHPMailer оруулах; "PHPMailer/PHPMailer.php" шаардлагатай; // үсэг үүсгэх $мэйл = шинэ PHPMailer; $mail->CharSet = "UTF-8"; $mail->setFrom(" [имэйлээр хамгаалагдсан]"); $мэйл->addAddress(" [имэйлээр хамгаалагдсан]"); $mail->Subject = "Энэ бол туршилт"; $mail->msgHTML("

Энэ бол шалгалт юм

"); // DKIM гарын үсгийг тохируулах $mail->DKIM_domain = "test.ru"; $mail->DKIM_private = "test-private.pem"; $mail->DKIM_selector = "мэйл"; // $ илгээх шуудан->илгээх();

Мэдээжийн хэрэг test.ruта өөрийн домэйн нэрээ өөрчлөх ёстой, мөн test-private.pemТүлхүүр үүсгэх үе шатанд үүсгэсэн хувийн түлхүүр файлын бүтэн зам болон нэр.

Одоо таны PHPMailer-ээр илгээсэн имэйлүүд таны хувийн түлхүүрээр DKIM гарын үсэг зурсан байх болно.

2019-08-05

Сайн байна уу, эрхэм зочин!

Блогоо шинэчлээд удаашсанд уучлаарай. Гэхдээ үүнд бүрэн ойлгомжтой тайлбар бий. Эцсийн эцэст, зун, зуслангийн байшин, зочид, ой мод, ус болон бусад олон зүйл нь вэбсайт үүсгэх асуудлыг шийдвэрлэх боломжийг надад олгосонгүй. Гэхдээ одоо би бага зэрэг чөлөөлөгдсөн, зочид явсан, одоо би үүнд анхаарлаа хандуулах болно гэж бодож байна.

Тиймээс, сүүлийн нийтлэлд бид домэйныхоо имэйлийг шуудангийн үйлчилгээнүүдийн аль нэгэнд холбосоны дараа та сайтаас хэрхэн имэйл илгээх боломжтойг харцгаая. Түүгээр ч барахгүй, бидний захидал СПАМ-д ордоггүй, харин найдвартай, өндөр магадлалтайгаар хүлээн авагчдад хүргэдэг.

Ерөнхийдөө PHP дээр захидал илгээх зориулалттай mail() функц байдаг. Гэхдээ энэ аргын энгийн байдлаас үл хамааран (энэ тохиолдолд захидал илгээхийн тулд тодорхой параметр бүхий нэг мөр кодыг зааж өгөхөд хангалттай) энэ сонголтыг ашиглах нь SPAM-ийн асуудалтай холбоотой мэдэгдэхүйц сул талтай гэдгийг тэмдэглэх нь зүйтэй. .

Баримт нь хүлээн авагчийн талын мэйл серверүүдийн СПАМ-ын эсрэг шүүлтүүрүүд нь mail() функцээр дамжуулан илгээсэн захидалд үнэхээр таалагддаггүй. Ихэнх тохиолдолд ийм мессежийг хүлээн авагчид хүрэхээс өмнө шүүж эсвэл бүр устгадаг.

Ийм тохиолдлыг аль болох арилгахын тулд гуравдагч этгээдийн шуудангийн үйлчилгээ хийсэн мэт захидал илгээдэг өөр сонголтыг ихэвчлэн ашигладаг.

Энэ аргыг SMTP-ээр зөвшөөрөлтэй захидал илгээх гэж нэрлэдэг. Үүнийг бид өнөөдөр санал хүсэлт илгээх жишээн дээр авч үзэх болно. Нэмж дурдахад бид SMTP-ээр захидал илгээхийг маш энгийнээр зохион байгуулах боломжийг олгодог нэлээд алдартай, алдартай PHPMailer номын санг ашиглах болно.

  • Бид санал хүсэлтээ хэрхэн илгээх вэ
  • Санал хүсэлтийн маягт үүсгэх
  • PHPMailer номын санг суулгаж байна
  • Бид SMTP-ээр захидал илгээх скрипт үүсгэдэг
  • Имэйл илгээхийг шалгаж байна
  • Эх файлуудсайт

Бид санал хүсэлтээ хэрхэн илгээх вэ

Эхлэхээсээ өмнө практик ажилСанал хүсэлтийн захидал илгээсний дараа бид эхлээд үүнийг хэрхэн хийхээ шийдэх болно.

Санал хүсэлтийн маягт нь хэрэглэгчийг сайтын админтай холбоо барьж, мессежээ дамжуулах боломжийг олгох зорилготой юм. Ихэвчлэн энэ маягт нь хэд хэдэн талбар болон "Илгээх" товчоос бүрдэнэ.

Зарчмын хувьд имэйл илгээхийн тулд хэрэглэгч болон мессежийн агуулгын талаар хангалттай мэдээлэл өгөх цөөн хэдэн талбарыг ашиглахад хангалттай, тухайлбал:

  • "Нэр" - мессеж илгээгчийн нэрийг оруулах;
  • "И-мэйл" - илгээгчийн имэйл хаягийн хувьд;
  • "Мессежийн сэдэв";
  • "Зурвасны текст".

Хэдийгээр та бусдыг нэмж болно. Жишээлбэл, хэрэв энэ нь үнэхээр шаардлагатай бол утасны дугаар.

Манай тохиолдолд ийм захидал нь манай домэйн холбогдсон шуудангийн үйлчилгээний зөвшөөрөлтэй жинхэнэ шуудангийн хайрцгаас сайтын администраторын хаяг руу илгээгдэх болно.

Өмнөх нийтлэлд бид Yandex.Mail үйлчилгээнд домэйн шуудангийн холболтыг шалгахад анхаарлаа хандуулсан тул бид энэ сонголтоор имэйл илгээх болно. Хэдийгээр энэ нь чухал биш юм. Доор та өөрчилсөн тохиолдолд Mail.ru мэйл серверээр дамжуулан имэйл илгээх боломжтой сонголтуудыг харах болно.

Захидал илгээх жинхэнэ шуудангийн хайрцгийн хувьд бид шинээр үүсгэсэн домэйн хэрэглэгчийн бүртгэлийг хаягаар нь хэлнэ. [имэйлээр хамгаалагдсан]. Мөн бид эдгээр захидлыг администраторын шуудангийн хайрцаг руу илгээх болно [имэйлээр хамгаалагдсан], бид өмнө нь өмнөх нийтлэлд бий болгосон.

Тиймээс санал хүсэлтийн маягтаас захидал илгээгч нь шуудангийн хайрцаг байх болно [имэйлээр хамгаалагдсан]., мөн хүлээн авагч - [имэйлээр хамгаалагдсан]. Энэ тохиолдолд мессежийг агуулгын хамт илгээсэн хэрэглэгчийн талаарх бүх мэдээллийг илгээсэн захидлын үндсэн хэсэгт дамжуулах болно.

Санал хүсэлтийн маягт үүсгэх

Бид захидал илгээх журмыг шийдсэний дараа бид үүнийг хийх санал хүсэлтийн маягтыг үүсгэх болно.

Доорх нь энэ маягтын HTML кодыг бид "Харилцагч" хуудсанд байрлуулах болно (нийтлэлүүдийн лавлах дахь kontakty.php файл).

    "нийтлэл" >

    Харилцагчид

    Санал хүсэлт

    "холбоо барих"үйлдэл = "#" арга = "шууд" >

    Санал хүсэлтийн маягт

    Бүх асуулт, хүсэлт, бизнесийн саналын хувьд та доорх санал хүсэлтийн маягтыг ашиглан бидэнтэй холбоо барьж болно.

    "холбоо барих блок" >

    "холбоо барих оролт" >

    "текст" id = "холбоо барих нэр"нэр = "холбоо барих нэр"гарчиг = "Нэр нь орос хэл дээр байх ёстой бөгөөд дор хаяж 3 тэмдэгт агуулсан байх ёстой" загвар = "{3,}" шаардлагатай >

  1. "хоосон холбоо барих" >

    "холбоо барих оролт" >

    "имэйл" id = "холбоо барих имэйл"нэр = "холбоо барих имэйл"шаардлагатай >

  2. "холбоо барих сэдэв" >

  3. "холбоо барих сэтгэгдэл" >

  4. "холбоо барих товч" >

    "илгээх"нэр = "холбоо барих товч"үнэ цэнэ = "Илгээх" >

Зураг.1 Санал хүсэлтийн маягтын HTML код

Энд үзүүлсэн санал хүсэлтийн маягт эцсийн дүндээ хэрхэн харагдахыг дараах дэлгэцийн агшнаас харж болно.

Тиймээс хүссэн хэлбэр бий болно. Одоо та имэйл мессеж хэлбэрээр өгөгдлийг боловсруулах, илгээх асуудал руу шилжиж болно.

PHPMailer номын санг суулгаж байна

Өмнө дурьдсанчлан захидал илгээхийн тулд бид PHPMailer номын санг ашиглах бөгөөд энэ нь цахим шуудангаар дамжуулан имэйл илгээхийг ихээхэн хялбаршуулна. SMTP протоколгуравдагч этгээдийн шуудангийн үйлчилгээний зөвшөөрөлтэй.

Үүнийг суулгахын тулд та татаж авах хэрэгтэй шаардлагатай файлууд. Үүнийг GitHub вэб үйлчилгээнээс Composer (PHP-д зориулсан багцын хамаарлын менежер) ашиглан хийж болно. Эсвэл шаардлагатай файлуудыг ердийн аргаар татаж аваарай.

дэлгэцийн зураг 73

Доорх нь GitHub вэб үйлчилгээний хуудас бөгөөд PHPMailer номын санг тогтмол татаж авах холбоос тэмдэглэгдсэн байна.

Үүнээс гадна, хамгийн сүүлийн хувилбарЭнэхүү нийтлэлийг бичиж байх үед хадгалагдсан 6.0.7-г хавсаргасан материалаас татаж авах боломжтой.

Ямар ч тохиолдолд үүссэн архивын файлыг задлах ёстой бөгөөд үүний дараа задалсан PHPMailer-master хавтсыг бүх агуулгатай нь сайтын үндсэн хэсэгт байрлуулах ёстой. Үүний зэрэгцээ, хялбар болгох үүднээс та үүнийг PHPMailer гэж нэрлэж болно. Сайтын үндсэн директорт байрлуулсан PHPMailer хавтасны агуулгыг доор харуулав.

Тиймээс бид PHPMailer номын санг суулгасан. Үүний дараа бид вэбсайтаасаа имэйл илгээх скрипт үүсгэж эхлэх боломжтой.

Бид SMTP-ээр захидал илгээх скрипт үүсгэдэг

Скриптийг бичихийн тулд GitHub хуудсан дээр өгөгдсөн PHPMailer ашиглах зөвлөмжийг ашиглахад хангалттай бөгөөд бидний өмнө нь номын санг татаж авахад ашигладаг байсан.

Тэд ялангуяа скриптийн эхэнд PHPMailer ангиудыг дэлхийн нэрийн орон зайд импортлох шаардлагатайг харуулж байна. Мөн холбогдох кодын тодорхой мөрүүдийг өгсөн болно. Мөн PHPMailer-ийн шинж чанар, аргуудыг ашиглах жишээнүүд байдаг, үүнд SMTP-ээр захидал илгээх боломжтой.

Гэхдээ энэ нь хангалтгүй бол та энэ номын сангийн бүх шинж чанар, аргуудын тайлбарыг агуулсан баримт бичгийг ашиглаж болно.

дэлгэцийн зураг 74

Зөвшөөрөлтэй SMTP-ээр дамжуулан санал хүсэлтийн маягтаас захидал илгээх скрипт кодыг доор харуулав. PHPMailer-тай холбоотой бүх мөрүүдийг тайлбарлаж, цайвар дэвсгэрээр тодруулсан байна.

Бусад процессоруудад өмнө нь ашиглах ёстой байсан маягтаас өгөгдөл хүлээн авах, боловсруулахтай холбоотой хэсгүүдийг багтаасан үлдсэн хэсгийг бараан дэвсгэрээр тэмдэглэв. Тэдгээрийн талаар өмнө нь PHP дахь маягтаас өгөгдөл олж авах, шалгах асуудалд тусгайлан зориулсан нийтлэлд дэлгэрэнгүй авч үзсэн. Мөн бид маягтын өгөгдлийг баталгаажуулах, боловсруулах бүх нийтийн хэрэглэгчийн функцийн талаар ярилцсан шалгах_тэмдэг().

Бид энэ скриптийг өмнө нь санал хүсэлтийн маягтыг үүсгэсэн kontakty.php файлд байрлуулах болно.

    //----PHPMailer ашиглан SMTP-ээр захидал илгээх скрипт----

    //Глобал нэрийн орон зайд PHPMailer классуудыг импортлох. Тэд функц дотор биш скриптийн дээд талд байх ёстой

    ашиглах PHPMailer\PHPMailer\PHPMailer;

    ашиглах PHPMailer\PHPMailer\Exception;

    хэрэв (!хоосон($_POST["холбоо барих товч" ])) (

    $name = $_POST["холбоо барих нэр" ];

    $name = check_symbol ($нэр, "Нэр" , "1" , "/^+\z/iu");

    $email = $_POST["холбоо барих имэйл" ];

    $email = check_symbol ($имэйл, "И-мэйл" , "1" , "/^+@(+\.)+(2,6)\z/i");

    $сэдэв = $_POST["холбоо барих сэдэв" ];

    $сэдэв = шалгах_тэмдэг ($сэдэв, "Зурвасны сэдэв" , "1" , "0" );

    $сэтгэгдэл = $_POST["холбоо барих-коммент" ];

    $ тайлбар = шалгах_тэмдэг ($ тайлбар, "Мессежийн текст", "1" , "0" );

    хэрэв (!хоосон($GLOBALS["сэрэмжлүүлэг" ])) (

    $ анхааруулга = "Маягтын өгөгдлийг илгээгээгүй. Дараах алдаа олдсон:\n".$ дохиолол;

    оруулах"alert.php" ;

    өөр {

    //Номын санг холбож байна

    шаарддаг"PHPMailer/src/PHPMailer.php" ;

    шаарддаг"PHPMailer/src/Exception.php" ;

    шаарддаг"PHPMailer/src/SMTP.php" ;

    $мэйл = шинэ PHPMailer(); //Ангийг эхлүүлэх

    $-аас = " [имэйлээр хамгаалагдсан]" ; //Захидал илгээсэн имэйл хаяг

    $to = " [имэйлээр хамгаалагдсан]" ; //Хүлээн авагчийн хаяг

    $мэйл -> isSMTP(); //SMTP протокол ашиглах

    $мэйл -> Хост = "smtp.yandex.ru" ; //Мэйл серверийн хаяг

    $мэйл -> SMTPAuth = үнэн ; // Зөвшөөрлийн горимыг идэвхжүүлнэ

    $мэйл -> Хэрэглэгчийн нэр = " [имэйлээр хамгаалагдсан]" ; //Гуравдагч талын цахим шуудангийн үйлчилгээнд холбогдсон домэйн имэйлээс нэвтрэх (энэ тохиолдолд Yandex.Mail)

    $мэйл -> Нууц үг = "27MrDon89" ; //Домэйн шуудангийн нууц үг

    $мэйл -> SMTPSecure = "ssl" ; //Шифрлэлтийн протокол

    $мэйл -> Порт = "465" ; //SMTP серверийн порт

    $mail -> CharSet = "UTF-8" ; // Кодлох

    $мэйл -> setFrom ($from, "Администратор" ); // Илгээгчийн хаяг, нэр

    $мэйл -> хаяг нэмэх ($-д, "Администратор"); //Хүлээн авагчийн хаяг, нэр

    $мэйл -> isHTML ( үнэн ); //Имэйл форматыг HTML болгож тохируулна уу

    $мэйл -> Гарчиг = "Санал хүсэлтийн маягтыг илгээсэн"; // Имэйлийн сэдэв (гарчиг)

    $мэйл -> Их бие = "

    Илгээгчийн нэр: $ нэр

    Илгээгчийн хаяг: $мэйл

    Мессежийн сэдэв: $сэдэв

    Мессежийн агуулга: $ сэтгэгдэл

    " ; // Мессежийн агуулга

    $мэйл -> AltBody = "Өөр үсэг текст"; //Эмэйл клиент HTML форматыг дэмждэггүй бол өөр имэйл

    $мэйл -> SMTPDebug = 0; //SMTP дибаг хийхийг идэвхжүүлэх: 0 - унтраалттай (ердийн хэрэглээнд), 1 = үйлчлүүлэгчийн мессежүүд, 2 - үйлчлүүлэгч болон серверийн мессежүүд

    хэрэв($мэйл -> илгээх()) (

    $ анхааруулга = "Зурвас илгээсэн"; //Захиаг амжилттай илгээсэн тухай хөтчийн харилцах цонхонд мессеж гарга

    өөр {

    $ анхааруулга = "Алдаа, имэйл илгээх боломжгүй:".$мэйл -> ErrorInfo ; //Алдааны мэдэгдэл гарга

    оруулах"alert.php" ;

Зураг.5 Зөвшөөрөлтэй SMTP-ээр имэйл илгээх скрипт

Таны харж байгаагаар имэйл мессеж илгээхтэй шууд холбоотой бүх мөрөнд шаардлагатай арга, шинж чанарыг зааж өгсөн тайлбарыг хавсаргасан болно. Тиймээс бид өөрсдийгөө давтах нь утгагүй юм, гэхдээ бид зөвхөн тэдгээрийн заримыг нь авч үзэх боломжтой бөгөөд энэ нь үнэхээр нэмэлт тайлбар шаарддаг, тухайлбал:

1. Захидал нь гуравдагч этгээдийн шуудангийн үйлчилгээнээс илгээгдсэн тул тодорхой SMTP серверт тохирох тохиргоог энд оруулсан болно. Энэ тохиолдолд Yandex.Mail серверийг ашиглах тохиолдолд дараах өмчийн утгыг хэрэглэнэ.

  • Өмч Хөтлөгч(pos.28) - smtp.yandex.ru утгатай шуудангийн серверийн хаяг;
  • Өмч SMTPSecure
  • Өмч Порт

Эдгээр өмчийн утгыг дараах дэлгэцийн агшинд харуулсан Yandex.Тусламжийн хуудаснаас авсан болно.

Гэхдээ ийм мэдээллийг бусад эх сурвалжаас авах боломжтой. Үүнийг хийхийн тулд хайлтын системд тохирох асуулгыг оруулна уу, жишээлбэл: "Yandex smtp сервер". Энэ асуудлын талаархи олон тооны лавлагааг хаанаас олж болох вэ.

Үүнтэй адилаар тохиргооны утгыг бусад SMTP серверүүдээс авах боломжтой. Mail.ru мэйл үйлчилгээний SMTP серверийн тохиргоог харуулсан Mail.ru тусламжийн хуудасны дэлгэцийн агшинг доор харуулав.

Тиймээс, Mail.ru-г гуравдагч этгээдийн SMTP сервер болгон ашиглах тохиолдолд PHPMailer ангиллын шинж чанаруудын дараах утгыг хэрэглэнэ.

  • Өмч Хөтлөгч(pos.28) - Мэйл серверийн хаяг (smtp.mail.ru);
  • Өмч SMTPSecure(pos.32) - Шифрлэлтийн протокол (ssl);
  • Өмч Порт(33 дугаар байр) - SMTP серверийн порт (465).

Үүнтэй төстэй аргыг бусад цахим шуудангийн үйлчилгээнд ашиглах ёстой.

2. Эд хөрөнгөнд Хэрэглэгчийн нэр(30 дугаар байр) домэйны шуудангийн хайрцгийн бүрэн хаягийг зааж өгөх шаардлагатай. Энэ тохиолдолд " [имэйлээр хамгаалагдсан]".

Гэсэн хэдий ч, хэрэв та захидал илгээхдээ домэйн мэйл данснаас өөр хаяг ашигладаг бол шуудангийн үйлчилгээтэй шууд холбоотой хаяг, жишээ нь " [имэйлээр хамгаалагдсан]", дараа нь нэвтрэх нь зөвхөн "@" тэмдэг хүртэлх хаягийн хэсэг байх ёстой. Энэ тохиолдолд нэвтрэх нь "санал хүсэлт" гэсэн утгатай байх болно.

3. PHPMailer нь өмчийг өгдөг SMTPDebug(pos. 50), энэ нь хөтчийн дэлгэц дээр янз бүрийн түвшний алдааг харуулах боломжийг олгодог. Энэ функц нь скриптийг дибаг хийх үед асуудлыг олоход ихээхэн хялбар болгодог.

Ихэвчлэн хэвийн горимд утгыг 0 болгож тохируулсан үед алдааны дэлгэрэнгүй мэдээллийг гаргах нь идэвхгүй болдог. Хэрэв захидал илгээх эсвэл дибаг хийх явцад асуудал гарвал алдааны талаар илүү ач холбогдолтой мэдээллийг харуулахын тулд бусад утгыг ашиглах боломжтой.

Энэ нь практикт хэрхэн харагдахыг харахын тулд тохиргоонд түр зуур алдаа оруулъя. Жишээлбэл, домэйны шуудангийн нууц үг (property Нууц үг, pos.31). Мөн түүнчлэн үл хөдлөх хөрөнгийн түр хугацаагаар тогтоосон алдааны талаар дэлгэрэнгүй мэдээллийг харуулах SMTPDebug(pos.50) утга 1. Бүх зүйлийг дибаг хийж, шалгасны дараа бид SMTP дибаг хийх горимыг идэвхгүй болгож, 1-ийг 0-ээр солино.

Скриптийн эцсийн хэсэгт шаардлагатай бүх шинж чанар, аргыг зааж өгсний дараа захидал илгээх аргыг ашиглана. илгээх()) (51-р байр). Мөн захидал илгээсэн бол, мөн арга илгээх()объектын хувьд $мэйлүнэн, дараа нь хөтчийн харилцах цонхонд хувьсагчаар дамжуулан буцаана $ сэрэмжлүүлэгАмжилттай захидал илгээсэн тухай мессеж гарч ирнэ (поз 52).

Хэрэв ямар нэг шалтгааны улмаас шуудан илгээх боломжгүй, үүний дагуу арга нь үнэн болж чадахгүй бол энэ төлөвийг харгалзах алдааны мэдэгдэл дагалдуулна (поз 55).

Имэйл илгээхийг шалгаж байна

Бид шуудан илгээх скриптийг үүсгэсний дараа мэдээжийн хэрэг "бүтээлч"-ийн үр дүнг харах хэрэгтэй. Бид энд бүх зүйлийг анхаарч үзсэн үү, ямар ч алдаа гаргаагүй гэж үү?

Үүнийг хийхийн тулд санал хүсэлтийн маягтаас сайтын админ руу хэрэглэгчээс мессеж илгээхийг хичээцгээе. Санал хүсэлтийн маягтыг илгээхээс өмнө бөглөсөн талбаруудын дэлгэцийн агшинг доор харуулав.

Мөн маягтыг илгээсний үр дүн энд байна.

Хөтөчийн харилцах цонхны мессежээс SMTP холболттой холбоотой асуудлаас болж захидал илгээх боломжгүй болох нь тодорхой байна.

Харин одоогоос хойш эд хөрөнгө SMTPDebug(50-р байр) 1-р утгыг өгсөн бол бид гарсан алдааны талаарх дэлгэрэнгүй мэдээллийг харж, түүний үүсэх шалтгааныг олж мэдэх боломжтой.

Дараах дэлгэцийн агшинд холбогдохыг оролдох үед нэвтрэлт танилтын алдаа илэрсэн бөгөөд энэ нь буруу нэвтрэх эсвэл нууц үг ашигласан гэсэн үг юм.

Нууц үгийн таарахгүй байдлыг арилгасны дараа (алдааны талаарх нэмэлт мэдээллийг шалгахын тулд өмнө нь буруу нууц үг ашигласан) бид дахин имэйл илгээхийг оролдох болно.

Энэ удаад бүх зүйл сайхан болсон бололтой, захидал амжилттай илгээгдсэн гэсэн мессеж ирлээ. Домэйн имэйлийн нууц үгэнд зориудаар оруулсан түр зуурын алдааг эс тооцвол бид өөр ямар ч алдаа гаргаагүй бололтой.

Гэхдээ захидал хүлээн авагчид үнэхээр хүргэгдсэн эсэхийг шалгахын тулд хаягтай шуудангаа оруулъя. [имэйлээр хамгаалагдсан]мөн үр дүнг харна уу.

Таны харж байгаагаар хаягаас ирсэн захидал [имэйлээр хамгаалагдсан], үүнээс бид "Санал хүсэлт" нэртэй имэйл мессежийг сайтын админд амжилттай илгээсэн. Үүний зэрэгцээ, захидлын үндсэн хэсэг нь санал хүсэлтийн маягтаас хүлээн авсан өгөгдлийг ашиглан скрипт дээр үүсгэсэн бүх агуулгыг агуулдаг, тухайлбал:

  • Илгээгчийн нэр: Николай;
  • Илгээгчийн хаяг: [имэйлээр хамгаалагдсан];
  • Мессежийн сэдэв: Имэйл илгээхийг шалгаж байна;
  • Мессежийн агуулга: Туршилтын мессеж.

Захиа илгээхийг амжилттай шалгасны дараа та өмчийг зааж өгснөөр SMTP дибаг хийх горимыг идэвхгүй болгож болно. SMTPDebug(поз.50) утга 0.

Тиймээс бид гуравдагч этгээдийн шуудангийн серверийг ашиглан зөвшөөрөлтэйгээр SMTP-ээр захидал илгээх хэрэгслийг бий болгох ажлыг дуусгасан.

Жишээлбэл, дараагийн өгүүллээр бид бүртгэлтэй хэрэглэгчийн бүртгэлийн өгөгдлийг сэргээхийн тулд баталгаажуулах имэйлийг хэрхэн илгээх талаар авч үзэх болно.

Сайтын эх файлууд

Энэ нийтлэлд оруулсан шинэчлэлт бүхий сайтын эх файлуудыг хавсаргасан нэмэлт материалаас татаж авах боломжтой.

  • www лавлах файлууд
  • MySQL мэдээллийн сангийн хүснэгтүүд

© 2024 ermake.ru -- Компьютер засварын тухай - Мэдээллийн портал