Как да изпратите имейл с помощта на функцията PHP mail().

Какво е PHP поща?

PHP mail е вградената PHP функция, която се използва за изпращане на имейли от PHP скриптове.

Функцията за поща приема следните параметри:

  • E-mail
  • Тема:
  • Съобщения
  • CC или BC имейл адреси

  • Това е рентабилен начин за уведомяване на потребителите за важни събития.
  • Позволете на потребителите да се свързват с вас по имейл, като предоставят формуляр за връзка с нас на уебсайта, който изпраща предоставеното съдържание по имейл.
  • Разработчиците могат да го използват, за да получават системни грешки по имейл
  • Можете да го използвате, за да изпратите имейл до вашите абонати за бюлетин.
  • Можете да го използвате, за да изпращате връзки за нулиране на парола до потребители, които са забравили паролите си
  • Можете да го използвате за изпращане по имейл на връзки за активиране/потвърждение. Това е полезно при регистриране на потребители и проверка на техните имейл адреси

Защо/кога да използваме пощата PHP

Изпращане на поща чрез PHP

PHP функцията за поща има следния основен синтаксис

<?php
mail($to_email_address,$subject,$message,[$headers],[$parameters]);
?>

ТУК,

  • “$to_email_address” е имейл адресът на получателя на имейла
  • “$subject” е темата на имейла
  • “$message” е съобщението, което трябва да бъде изпратено.
  • „[$headers]“ не е задължително, може да се използва за включване на информация като CC, BCC

    • CC е съкращението за копие. Използва се, когато искате да изпратите копие до заинтересовано лице, т.е. имейл за оплакване, изпратен до компания, може също да бъде изпратен като CC до таблото за оплаквания.
    • BCC е акронимът за сляпо копие. Подобен е на CC. Имейл адресите, включени в секцията BCC, няма да се показват на другите получатели.

Прост Mail Transmission Протокол (SMTP)

PHP mailer използва Simple Mail Transmission Протокол (SMTP) за изпращане на поща.

На хостван сървър настройките за SMTP вече биха били зададени.

Настройките на SMTP пощата могат да бъдат конфигурирани от файла „php.ini“ в инсталационната папка на PHP.

Конфигуриране на SMTP настройки на вашия локален хост Ако приемем, че използвате xampp на Windows, намерете „php.ini“ в директорията „C:\xampp\php“.

  • Отворете го с бележник или друг текстов редактор. В този пример ще използваме бележник. Кликнете върху менюто за редактиране

Прост Mail Transmission протокол

  • Щракнете върху менюто Намери…

Прост Mail Transmission протокол

  • Ще се появи диалоговото меню за търсене

Прост Mail Transmission протокол

  • Щракнете върху бутона Find Next

Прост Mail Transmission протокол

  • Намерете записите

    • [функция за поща]
    • ; XAMPP: Не премахвайте полуколоната, ако искате да работите със SMTP сървър като Mercury
    • ; SMTP = локален хост
    • ; smtp_port = 25
    • Премахнете точката и запетаите преди SMTP и smtp_port и задайте SMTP на вашия smtp сървър и порта към вашия smtp порт. Вашите настройки трябва да изглеждат по следния начин

      • SMTP = smtp.example.com
      • smtp_port = 25
      • Забележка настройките за SMTP могат да бъдат получени от вашите уеб хостинг доставчици.
      • Ако сървърът изисква удостоверяване, добавете следните редове.

        • auth_username = example_username@example.com
        • auth_password = примерна_парола
        • Запазете новите промени.
        • Restart Apache сървър.

PHP Mail Пример

Нека сега да разгледаме пример, който изпраща обикновена поща.

<?php     
$to_email = 'name @ company . com';
$subject = 'Testing PHP Mail';
$message = 'This mail is sent using the PHP mail function';
$headers = 'From: noreply @ company . com';
mail($to_email,$subject,$message,$headers);
?>

Изход:

Прост Mail Transmission протокол

Забележка: горният пример приема само 4-те задължителни параметъра.

Трябва да замените горния фиктивен имейл адрес с истински имейл адрес.

Дезинфекциране на въведените от потребителя имейли

Горният пример използва твърдо кодирани стойности в изходния код за имейл адреса и други подробности за простота.

Да предположим, че трябва да създадете формуляр за връзка с нас, за да могат потребителите да попълнят подробностите и след това да изпратят.

  • Потребителите могат случайно или умишлено да инжектират код в заглавките, което може да доведе до изпращане на спам
  • За да защитите системата си от подобни атаки, можете да създадете персонализирана функция, която дезинфекцира и валидира стойностите преди изпращането на имейла.

Нека създадем персонализирана функция, която валидира и дезинфекцира имейл адреса с помощта на вградената функция filter_var.

Функция filter_var Функцията filter_var се използва за дезинфекция и валидиране на въведените от потребителя данни.

Той има следния основен синтаксис.

<?php
filter_var($field, SANITIZATION TYPE);
?>

ТУК,

  • „filter_var(…)“ е функцията за валидиране и дезинфекция
  • “$field” е стойността на полето, което трябва да се филтрира.
  • „ТИП ДЕЗАЗИНИЗАЦИЯ“ е типът дезинфекция, която трябва да се извърши на полето, като например;

    • FILTER_VALIDATE_EMAIL – връща true за валидни имейл адреси и false за невалидни имейл адреси.
    • FILTER_SANITIZE_EMAIL – премахва незаконните символи от имейл адресите. info\@domain.(com) връща info@domain.com.
    • FILTER_SANITIZE_URL – премахва незаконните символи от URL адресите. http://www.example@.comé връща >http://www.example@.com
    • FILTER_SANITIZE_STRING – премахва етикети от низови стойности. съм смел става смел.

Кодът по-долу използва персонализирана функция за изпращане на защитена поща.

<?php 
function sanitize_my_email($field) {
    $field = filter_var($field, FILTER_SANITIZE_EMAIL);
    if (filter_var($field, FILTER_VALIDATE_EMAIL)) {
        return true;
    } else {
        return false;
    }
}
$to_email = 'name @ company . com';
$subject = 'Testing PHP Mail';
$message = 'This mail is sent using the PHP mail ';
$headers = 'From: noreply @ company. com';
//check if the email address is invalid $secure_check
$secure_check = sanitize_my_email($to_email);
if ($secure_check == false) {
    echo "Invalid input";
} else { //send email 
    mail($to_email, $subject, $message, $headers);
    echo "This email is sent using PHP Mail";
}
?>

Изход:

Дезинфекциране на въведените от потребителя имейли

Закрепете Mail

Имейлите могат да бъдат прихванати по време на предаване от нежелани получатели.

Това може да изложи съдържанието на имейла на нежелани получатели.

Защитената поща решава този проблем чрез предаване на имейли чрез Hypertext Transfer Protocol Secure (HTTPS).

HTTPS криптира съобщенията, преди да ги изпрати.

Oбобщение

  • - PHP вградената функция mail() се използва за изпращане на поща от PHP скриптове
  • Проверките за валидиране и дезинфекция на данните са от съществено значение за изпращането на защитена поща
  • Вградената в PHP функция filter_var() осигурява лесен за използване и ефективен начин за извършване на саниране и валидиране на данни