Skip to content
Menu
Leesweb
Leesweb

Hogyan küldhetek levelet PHP-ben? [Teljes útmutató]

Posted on január 5, 2022 by admin

a szerző önként hozzájárult ehhez az oktatóanyaghoz a Pepipost Write to Contribute program részeként.

  • Bevezetés
  • előfeltételek
  • szintaxis
  • paraméterek
  • visszatérési érték
  • kevés használati eset és Munkapélda
  • gyakori hibák/kivételek a PHP sendmail funkcióval
  • PHP konfigurálása levél küldéséhez
  • következtetés

Bevezetés

PHP jön egy alapértelmezett funkció mail (), amely lehetővé teszi, hogy sendmail közvetlenül a PHP script. Ebben az oktatóanyagban az e-mail küldésének előfeltételeiről, a szintaxisról és annak paramétereiről fogunk beszélni.

előfeltételek

  • PHP4, PHP 5 vagy PHP 7
  • PHP konfigurálva sendmail-re. Abban az esetben, ha a PHP beállítása nincs konfigurálva e-mail küldésére a külvilág felé, akkor kérjük, olvassa el a cikk végén említett lépéseket.

szintaxis

levél (címzett,tárgy,üzenet,fejlécek,paraméterek);

paraméterek

a
karakterlánc | szükséges
a címzett e-mail címe.
Megjegyzés: A készüléknek meg kell felelnie az RFC 2822 szabványnak. Egy vagy több e-mail címet vesszővel elválasztva adhat át.
néhány példa arra, hogy az értékek hogyan fognak kinézni:

  • ,
  • vevő neve <>
  • vevő neve < >, Vevő Neve 2 <>

tárgy
String / Required
az elküldendő e-mail tárgya.
megjegyzés: az alanynak meg kell felelnie az RFC 2047 szabványnak.

üzenet
karakterlánc | kötelező
az elküldeni kívánt levél tartalma. Az e-mail minden sorát CRLF-el (\r\n) kell elválasztani, és minden sor nem haladhatja meg a 70 karaktert.
Windows gép esetén, amikor a PHP egy SMTP-kiszolgálóhoz csatlakozik a sendmailhez, eltávolítja a sor elején található pontpontot. Ennek megoldásához cserélje ki a pontot egy dupla pontra, az alábbi kód használatával:

<?php $text = str_replace("\n.", "\n..", $text); ?>

additional_headers
vegyes (String vagy Array) | opcionális
ez a paraméter a további e-mail fejlécek, például a From, Cc és a Bcc továbbítására szolgál. Minden további fejlécet CRLF-el (\r\n) kell elválasztani.
Megjegyzés: Az e-mail küldése közben ellenőrizze, hogy van-e From fejléc. Beállíthatjuk a From fejlécet, vagy az additional_headers paraméterrel, vagy beállíthatunk egy alapértelmezett értéket a php-ben.ini.

additional_parameters
String | Optional
ez az additional_parameter használható további zászlók továbbítására a Sendmail programnak a sendmail_path konfigurációs beállításban konfigurálva. Például; ezzel a paraméterrel beállíthatja a boríték feladójának címét, ha a Sendmail-f opcióval használja. A PHP alapértelmezés szerint belsőleg elkerüli az escapeshellcmd() paraméterben szereplő értékeket, hogy megakadályozza a parancs esetleges végrehajtását.

visszatérési érték

mail() függvény TRUE értéket ad vissza, ha az SMTP-kiszolgáló sikeresen elfogadta az e-mailt kézbesítésre, különben hamis.

a valóság megszerzése nem feltétlenül jelenti azt, hogy az e-mailt a címzett szerverére szállítják. A TRUE csak azt jelzi, hogy az e-mail sikeresen beküldte az SMTP-kiszolgáló küldési sorát.A
értéke TRUE, ha az e-mailt sikeresen elfogadták kézbesítésre, ellenkező esetben FALSE.
fontos megjegyezni, hogy csak azért, mert a levelet kézbesítésre elfogadták, ez nem jelenti azt, hogy a levél eléri a kívánt rendeltetési helyet.

megjegyzés: a mail() funkció nem fog működni a helyi szerveren. Az internethez csatlakoztatott szerver és a megnyitott SMTP portok szükségesek a levelek küldéséhez.

kevés használati eset és Munkapélda

1. Hogyan lehet HTML-levelet küldeni

<?php$to = ", ";$subject = "This is a test HTML email";$message = "<html><head><title>This is a test HTML email</title></head><body><p>Test email. Please ignore.</p></body></html>";// It is mandatory to set the content-type when sending HTML email$headers = "MIME-Version: 1.0" . "\r\n";$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";// More headers. From is required, rest other headers are optional$headers .= 'From: <>' . "\r\n";$headers .= 'Cc: ' . "\r\n";mail($to,$subject,$message,$headers);?>

2. Hogyan kell elküldenimail egy további parancssori paraméterrel.
a fent leírtak szerint ebben a használati esetben az additional_parameters paramétert kell használnia egy további paraméter továbbításához a sendmail_path használatával történő levélküldéshez konfigurált programnak.

<?phpmail('', 'This is a test subject line', 'The complete body of the message', null, ''); ?>

gyakori hibák/kivételek a PHP sendmail funkcióval

  1. nem lehet nagy mennyiségű e-mailt küldeni a mail() funkcióval
    a mail() funkcióval nem ajánlott nagy mennyiségű e-mailt küldeni, mert minden e-mailhez megnyit és bezár egy SMTP socket kapcsolatot. Ez tényleg nem túl hatékony.
    ha nagy mennyiségű e-mailt szeretne küldeni PHP-ben, akkor ajánlott a PEAR::Mail és a PEAR::Mail_Queue csomagok hivatkozása, vagy használjon egy jó e-mail szolgáltatót, amely segít az e-mail kötetének méretezésében.
  2. nem kap e-maileket küldött a PHP mail() funkció
    míg nem lehet N számú oka a hiba, de az egyik a wried probléma, amely sok találkozik van a Unix mail transfer ágensek, amelyek helyettesítik LF által CRLF automatikusan, ami megduplázódik CR ha CRLF már használják a kódot. Ebben az esetben csak LF (\n) értéket használjunk. További információ az RFC 2822 üzenetformátumáról.
  3. figyelem: mail (): a “sendmail_from” nincs beállítva a php-ben.ini vagy egyéni “From:” fejléc hiányzik.
    ez a hiba leginkább azért fordul elő, mert a levél küldése közben nem említette a From fejlécet az additional_headers paraméterek használatával.

PHP konfigurálása levél küldéséhez

a PHP-vel kapcsolatos dolgok konfigurálásához meg kell változtatnia a `php-t.ini ‘ dosszié. A php-t fogjuk szerkeszteni.ini fájl a Sendmail konfigurálásához.

könnyen megtalálhatja vagy megkeresheti a php-t.ini fájl Linuxban az alábbi parancs használatával:

locate php.ini

az alapértelmezett hely az ` / etc / php.ini ‘

ugyanez megtalálható a windows rendszerben, ahol az XAMPP vagy a LAMPP telepítve van:

pontosítás:

  • Xampp (X (“egyes operációs rendszerek” esetén), Apache, MySQL, Perl, PHP)
  • Lampp (Linux, Apache, MySQL, Perl, PHP)

változó php.ini fájl hozzáadása mail konfiguráció.

1. Nyissa meg a php-t.ini fájl az alábbi használatával:
Linux / Mac OS esetén:

vim /etc/php.in 

Windows esetén:
jegyzettömb használata

2. Keresés a fájlban. Az alábbiakban látható lesz:

; For Win32 only.; http://php.net/smtpSMTP = localhost; http://php.net/smtp-portsmtp_port = 25; For Win32 only.; http://php.net/sendmail-from;sendmail_from = ; For Unix only. You may supply arguments as well (default: "sendmail -t -i").; http://php.net/sendmail-pathsendmail_path = /usr/sbin/sendmail -t -i; Force the addition of the specified parameters to be passed as extra parameters; to the sendmail binary. These parameters will always replace the value of; the 5th parameter to mail(), even in safe mode.;mail.force_extra_parameters =; Add X-PHP-Originating-Script: that will include uid of the script followed by the filenamemail.add_x_header = On; The path to a log file that will log all mail() calls. Log entries include; the full path of the script, line number, To address and headers.;mail.log =

3. Adja hozzá a levelező szerver adatait a fájlhoz, vagy beládáz van egy meg lehet változtatni (mail szerver lehet a saját ie. helyi levelezőszerver, vagy bármilyen ESP-t használhat levelezőszerverként).
Linux / Mac OS esetén:
– ellenőrizze a `sendmail_path ‘ szót, és győződjön meg róla, hogy a; nem (pontosvessző jelzi a sor megjegyzését).
– alapértelmezés szerint a `/usr/bin/sendmail-t-i` parancsot fogja használni.Ablakhoz:
– ellenőrizze az `SMTP = localhost` szót, és változtassa meg a kívánt levelezőszerverre (bármilyen ESP vagy localhost) nincs szükség változtatásra, ha saját helyi szervert használ.
– vagy bármely e-mail szolgáltató smtp szerverét is használhatja, mint például a Pepipost, a Sendgrid, a Mailgun, a Sparkpost.

4. A php mentése/bezárása.ini fájl

5. Az utolsó lépés, ne felejtsd el újraindítani a webszervert / php-fpm.

Pro tipp: a fogadó egy egyszerű “info.php ” a webszerveren, hogy ellenőrizze a PHP minden konfigurációját az alábbi használatával 2 vonalhajózási kód:

vim php_info.php<?phpphpinfo();?>

mentse és lépjen ki a fájlból.
6. Töltse be újra a webszervert és a php-fpm-et.
7. Nyomja meg a http://localhost/php_info.php gombot a webböngészőben.

következtetés

Remélem, ez a bemutató képes segíteni, hogy küldjön e-mailt a PHP.

Vélemény, hozzászólás? Kilépés a válaszból

Az e-mail-címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

Legutóbbi bejegyzések

  • a Blog Single
  • hogyan lehet keresni érmék felhívni valamit?
  • hogyan kell dobni egy süllyesztőt: Balkezes & jobbkezes
  • hogyan lehet növelni a Leptin szintjét
  • hogyan lehet exportálni a Hotmail névjegyeket?
  • bet365 bónuszkód: írja be a tmg50 regisztrációs kódot decemberre 2021
  • Az SSL tanúsítvány telepítése a Centos-On 7
  • hogyan tömítés rozsdamentes acél mosogató (hatékony módja)

Archívum

  • 2022 március
  • 2022 február
  • 2022 január
  • 2021 december
  • 2021 november

Meta

  • Bejelentkezés
  • Bejegyzések hírcsatorna
  • Hozzászólások hírcsatorna
  • WordPress Magyarország
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어
©2022 Leesweb | Theme: Wordly by SuperbThemes