Funkcja mail() jest wbudowaną funkcją PHP, która służy do wysyłania wiadomości e-mail z lokalnego hosta. Jednak niektóre konfiguracje są wymagane do wysyłania wiadomości e-mail za pomocą tej funkcji. Będziesz potrzebować prawdziwych informacji o serwerze pocztowym, aby skonfigurować konfigurację. Możesz użyć informacji o serwerze pocztowym swojego aktywnego serwera hostingowego lub możesz użyć dowolnych bezpłatnych informacji o serwerze pocztowym. Konto Gmail i informacje o serwerze SMTP Gmaila są używane w tym samouczku do wysyłania wiadomości e-mail za pomocą funkcji mail().
Konfiguracja konfiguracji
W celu skonfigurowania konfiguracji wymagane będą dwa pliki: php.inicja plik i inny plik jest wymagany do skonfigurowania w celu skonfigurowania serwera pocztowego. Postępuj zgodnie z poniższymi krokami, aby skonfigurować konfigurację. Wiele pakietów jest dostępnych w PHP do wysyłania e-maili. msmtp jest klientem serwera poczty PHP używanym w tym samouczku do wysyłania wiadomości e-mail za pomocą funkcji PHP mail().
Kroki:
Uruchom następujące polecenie, aby zainstalować msmtp pakiet na Ubuntu, aby skonfigurować serwer pocztowy:
$ sudo apt-get install msmtpUtwórz plik konfiguracyjny o nazwie /etc/msmtprc za pomocą następującego polecenia:
$ sudo nano /etc/msmtprcDodaj następującą zawartość do pliku. Dodaj prawidłowy adres e-mail dla użytkownik i ważne hasło dla hasło który zostanie użyty do wysłania e-maila. Ustaw adres e-mail nadawcy dla Formularz wartość.
domyślneto włączone
tls_starttls włączone
tls_trust_file /etc/ssl/certs/ca-certificates.crt
domyślne konto
hosta.gmail.com
port 587
autoryzacja na
nazwa uż[email protected]
hasło hasło_użytkownika
od sender_email_address
Uruchom następujące polecenia, aby ustawić własność i uprawnienia dla /etc/msmtprc plik:
$ sudo chown fahmida /etc/msmtprc$ sudo chmod 0600 /etc/msmtprc
Otworzyć php.inicja plik i zmodyfikuj następującą zawartość, wprowadzając następujące wartości:
SMTP=smtp.gmail.comport_smtp=587
sendmail_path = "/usr/bin/msmtp -t -i"
Składnia:
bool mail (ciąg $do, ciąg $temat, ciąg $wiadomość [, mieszane $dodatkowe_nagłówki [, ciąg $parametry_dodatkowe ]])Ta funkcja może przyjmować cztery argumenty. Pierwszy argument przyjmuje adres e-mail odbiorcy. Drugi argument przyjmuje temat wiadomości e-mail. Trzeci argument zajmuje treść wiadomości e-mail. Ostatni argument jest opcjonalny i zawiera dodatkowe informacje o wiadomości e-mail w postaci ciągu lub tablicy.
Wysyłanie wiadomości e-mail za pomocą funkcji mail()
Różne przykłady wysyłania wiadomości e-mail przy użyciu funkcji mail() PHP są pokazane w tej sekcji samouczka.
Przykład 1: Wyślij prosty tekstowy e-mail
Ten przykład pokazuje, jak można wysłać prosty tekstowy e-mail za pomocą funkcji mail(). Utwórz plik PHP za pomocą następującego skryptu.
Musisz ustawić poprawny adres e-mail dla $do zmienna, aby uzyskać dane wyjściowe następującego skryptu. Prosty tekst jest ustawiany jako treść wiadomości.
//Ustaw adres e-mail odbiorcy$to = "[email chroniony]";
//Ustaw temat e-maila
$subject = "To jest testowy email";
//Ustaw treść wiadomości e-mail
$message = "Testuje treść wiadomości e-mail";
//Ustaw informacje nagłówka
$headers = "Od: [email chroniony]\r\n";
$nagłówki .= "Odpowiedz do: [email chroniony]\r\n";
//Wyślij e-mail za pomocą funkcji wiadomości mail()
if(poczta($do,$temat,$wiadomość,$nagłówki))
echo "E-mail został wysłany pomyślnie.\r\n";
jeszcze
echo "E-mail nie został wysłany.
";
?>
Poniższe dane wyjściowe pojawią się po uruchomieniu skryptu z serwera WWW, jeśli funkcja mail() działa poprawnie.
Następujące dane wyjściowe pojawią się, jeśli sprawdzisz skrzynkę odbiorczą adresu e-mail, który został ustawiony jako adres e-mail odbiorcy.
Przykład 2: Wyślij e-mail w formacie HTML
Ten przykład pokazuje, jak można wysłać wiadomość e-mail w formacie HTML za pomocą funkcji mail(). Utwórz plik PHP za pomocą następującego skryptu.
$wiadomość zmienna jest inicjowana treścią HTML, która zostanie wysłana jako treść wiadomości e-mail. Jest to wspomniane w $nagłówek zmienna, że treść e-maila to HTML.
//Ustaw adres e-mail odbiorcy$to = "[email chroniony]";
//Ustaw temat e-maila
$subject = 'Rejestracja powiodła się';
//Ustaw treść wiadomości e-mail
$wiadomość = '
Twoja rejestracja została zakończona pomyślnie.
nazwa użytkownika = fahmida20
hasło = aswQ34ghqw
';
//Ustaw powrót karetki
$nl = "\r\n";
//Ustaw nagłówek Content-type
$headers = 'Wersja MIME: 1.0'.$nl;
$nagłówki .= 'Typ treści: text/html; zestaw znaków=izo-8859-1'.$nl;
//Ustaw dodatkowe informacje o nagłówkach
$nagłówki .= 'Do: Mehrab Hossain'.$nl;
$nagłówki .= 'Od: Administrator '.$nl;
$nagłówki .= 'DW: [e-mail chroniony]'.$nl;
//Wyślij e-mail za pomocą funkcji wiadomości mail()
if(poczta($do,$temat,$wiadomość,$nagłówki))
echo "E-mail został pomyślnie wysłany.\r\n";
jeszcze
echo "E-mail nie został wysłany. \r\n";
?>
Poniższe dane wyjściowe pojawią się po uruchomieniu skryptu z serwera WWW, jeśli funkcja mail() działa poprawnie.
Następujące dane wyjściowe pojawią się, jeśli sprawdzisz skrzynkę odbiorczą adresu e-mail, który został ustawiony jako adres e-mail odbiorcy.
Przykład 3: Wyślij e-mail z załącznikiem
Ten przykład pokazuje, jak można wysłać wiadomość e-mail, dołączając plik tekstowy. Utwórz plik tekstowy za pomocą następującego skryptu.
Zawartość pliku tekstowego jest odczytywana i kodowana przed załącznikiem, a funkcja md5() jest używana w skrypcie do wygenerowania losowej liczby dla mieszanej zawartości. Wszystkie niezbędne informacje są dodawane w $nagłówki i $wiadomość zmienne przed wysłaniem e-maila.
//Ustaw adres e-mail odbiorcy$to = "[email chroniony]";
//Ustaw temat e-maila
$subject = "Załącznik plikowy";
//Ustaw powrót karetki
$nl = "\r\n";
//Ustaw losowy hash, który będzie używany do mieszanej zawartości
$separator = md5(czas());
//Odczytaj zawartość załączonego pliku
$nazwa_pliku = 'mój_plik.tekst';
$treść = file_get_contents($nazwa pliku);
$zawartość = chunk_split(base64_encode($zawartość));
//Ustaw wiadomość e-mail z informacjami o załączniku
$wiadomość = "--" . $separator . $nl;
$wiadomość .= "Typ treści: tekst/zwykły; charset="iso-8859-1"" . $nl;
$wiadomość .= "Kodowanie-Transfer-Treści: 8bit" . $nl;
$wiadomość .= "Plik tekstowy jest dołączony do wiadomości e-mail." . $nl;
$wiadomość .= "--" . $separator . $nl;
$wiadomość .= "Content-Type: application/octet-stream; name="" . $nazwa pliku . """ . $nl;
$wiadomość .= "Kodowanie-Transfer Treści: base64" . $nl;
$wiadomość .= "Dyspozycja zawartości: załącznik" . $nl;
$wiadomość .= $zawartość . $nl;
$wiadomość .= "--" . $separator . "--";
//Ustaw nagłówek Content-type
$headers = 'Wersja MIME: 1.0'.$nl;
$nagłówki .= "Od: [e-mail chroniony]".$nl;
$nagłówki .= "Odpowiedz do: [email chroniony]".$nl;
$nagłówki .= "Typ treści: wieloczęściowy/mieszany; granica ="" . $separator . """ .$nl;
//Wyślij e-mail za pomocą funkcji wiadomości mail()
if(poczta($do,$temat,$wiadomość,$nagłówki))
echo "E-mail został pomyślnie wysłany z załącznikiem.\r\n";
jeszcze
echo "E-mail nie został wysłany. \r\n";
?>
Poniższe dane wyjściowe pojawią się po uruchomieniu skryptu z serwera WWW, jeśli funkcja mail() działa poprawnie.
Następujące dane wyjściowe pojawią się, jeśli sprawdzisz skrzynkę odbiorczą adresu e-mail, który został ustawiony jako adres e-mail odbiorcy.
Wniosek
W PHP istnieje wiele sposobów wysyłania e-maili. Funkcja PHP mail() nie działa poprawnie w Ubuntu po ustawieniu konfiguracji. Ten samouczek pokazuje niezbędne konfiguracje i sposób wysyłania e-maili za pomocą funkcji PHP mail().