Kuva 1 Palautelomakkeen HTML-koodi
Voit nähdä, miltä tässä näkyvä palautelomake lopulta näyttää seuraavasta kuvakaappauksesta.
Täten vaadittu lomake luotu. Ja nyt voit siirtyä tietojen käsittelyyn ja lähettämiseen sähköpostiviestin muodossa.
PHPMailer-kirjaston asentaminen
Kuten aiemmin mainittiin, käytämme sähköpostin lähettämiseen PHPMailer-kirjastoa, joka yksinkertaistaa huomattavasti sähköpostin lähettämistä SMTP-protokolla kolmannen osapuolen sähköpostipalvelussa.
Asentaaksesi sen sinun on ladattava tarvittavat tiedostot. Tämä voidaan tehdä GitHub-verkkopalvelusta Composerilla (PHP:n pakettiriippuvuuden hallinta). Tai lataa tarvittavat tiedostot tavalliseen tapaan.
kuvakaappaus 73
Alla on GitHub-verkkopalvelusivu, jonne on merkitty linkki PHPMailer-kirjaston tavalliseen lataukseen.
Sitä paitsi, uusin versio 6.0.7, joka on tallennettu tätä artikkelia kirjoitettaessa, voidaan ladata liitteenä olevista materiaaleista.
Joka tapauksessa tuloksena oleva arkistotiedosto tulee purkaa, minkä jälkeen purettu PHPMailer-master-kansio sisältöineen tulee sijoittaa sivuston juureen. Samalla voit yksinkertaisuuden vuoksi nimetä sen uudelleen PHPMailer. Alla on PHPMailer-kansion sisältö, joka on sijoitettu sivuston juurihakemistoon.
Siten asensimme PHPMailer-kirjaston. Tämän jälkeen voimme aloittaa skriptin luomisen, jolla lähetämme sähköpostiviestejä verkkosivustoltamme.
Luomme skriptin sähköpostin lähettämiseen SMTP:n kautta
Skriptin laatimiseen riittää, että käytämme GitHub-sivulla annettuja PHPMailerin käyttösuosituksia, joita käytimme aiemmin kirjaston lataamiseen.
Ne osoittavat erityisesti, että skriptin alussa on tuotava PHPMailer-luokat globaaliin nimiavaruuteen. Ja vastaavan koodin tietyt rivit annetaan. On myös esimerkkejä PHPMailerin ominaisuuksien ja menetelmien käytöstä, mukaan lukien mahdollisuus lähettää sähköpostia SMTP:n kautta.
Mutta jos tämä ei riitä, voit käyttää myös dokumentaatiota, joka sisältää kuvauksen kaikista tämän kirjaston ominaisuuksista ja menetelmistä.
kuvakaappaus 74
Alla on komentosarjakoodi sähköpostin lähettämiseen palautelomakkeesta SMTP:n kautta valtuutetulla tavalla. Jossa kaikki PHPMaileriin liittyvät rivit on selitetty ja korostettu vaalealla taustalla.
Muu osa, mukaan lukien lomakkeen tietojen vastaanottamiseen ja käsittelyyn liittyvät fragmentit, joita jouduimme aiemmin käyttämään muissa prosessoreissa, on merkitty tummalla taustalla. Niitä käsiteltiin yksityiskohtaisesti aiemmin artikkelissa, joka oli omistettu erityisesti PHP:n lomakkeen tietojen hankkimiseen ja tarkistamiseen. Puhuimme myös yleisestä käyttäjätoiminnosta lomaketietojen validointiin ja käsittelyyn check_symbol().
Sijoitamme tämän skriptin samaan kontakty.php-tiedostoon, johon olemme aiemmin luoneet palautelomakkeen.
//----Skripti sähköpostin lähettämiseen SMTP:n kautta PHPMailerin avulla----
//Tuo PHPMailer-luokat globaaliin nimiavaruuteen. Niiden tulee olla skriptin yläosassa, ei funktion sisällä
käyttää PHPMailer\PHPMailer\PHPMailer ;
käyttää PHPMailer\PHPMailer\Poikkeus ;
jos
(!tyhjä($_POST["contact-button" ])) (
$nimi = $_POST["yhteyshenkilön nimi" ];
$nimi = check_symbol ($nimi, "Nimi" , "1" , "/^+\z/iu" );
$sähköposti = $_POST["yhteyssähköposti" ];
$email = check_symbol ($email, "Sähköposti" , "1" , "/^+@(+\.)+(2,6)\z/i");
$aihe = $_POST["yhteystieto-aihe" ];
$aihe = check_symbol ($aihe, "Viestin aihe" , "1" , "0" );
$kommentti = $_POST["contact-comment" ];
$kommentti = check_symbol ($kommentti, "Viestiteksti", "1"
, "0"
);
jos
(!tyhjä($GLOBALS["hälytys" ])) (
$hälytys = "Lomaketietoja ei lähetetty. Seuraavat virheet löytyivät:\n".$hälytys;
sisältää"alert.php" ;
muu
{
//Kirjaston yhdistäminen
vaatia"PHPMailer/src/PHPMailer.php" ;
vaatia"PHPMailer/src/Exception.php" ;
vaatia"PHPMailer/src/SMTP.php" ;
$posti = Uusi PHPMailer(); //Luokan alustus
$from = " [sähköposti suojattu]"
; //Sähköpostiosoite, josta kirje lähetetään
$to = " [sähköposti suojattu]"
; //Vastaanottajan osoite
$posti -> isSMTP(); //Käytä SMTP-protokollaa
$mail -> Host = "smtp.yandex.ru" ; //Sähköpostipalvelimen osoite
$posti -> SMTPAuth = totta
; //Ota valtuutustila käyttöön
$mail -> Käyttäjätunnus = " [sähköposti suojattu]"
; //Kirjaudu sisään verkkotunnuksen sähköpostista, joka on yhdistetty kolmannen osapuolen sähköpostipalveluun (tässä tapauksessa Yandex.Mail)
$mail -> Salasana = "27MrDon89" ; //Salasana verkkotunnuksen sähköpostiin
$mail -> SMTPSecure = "ssl" ; //Salausprotokolla
$posti -> Portti = "465" ; //SMTP-palvelimen portti
$posti -> CharSet = "UTF-8" ; //Koodaus
$mail -> setFrom ($from, "Järjestelmänvalvoja" ); //Lähettäjän osoite ja nimi
$mail -> addAddress ($to, "Järjestelmänvalvoja" ); //Vastaanottajan osoite ja nimi
$mail -> isHTML ( totta
); //Aseta sähköpostin muoto HTML
$posti -> Aihe = "Palautelomake lähetetty"; //Sähköpostin aihe (otsikko)
$posti -> Body = "
Lähettäjän nimi: $nimi
Lähettäjän osoite: $sähköposti
Viestin aihe: $aihe
Viestin sisältö: $kommentti
"
; //Viestin sisältö
$mail -> AltBody = "Vaihtoehtoinen kirjeteksti"; //Vaihtoehtoinen sähköposti, jos sähköpostiohjelma ei tue HTML-muotoa
$posti -> SMTPDbug = 0 ; //Ota SMTP-virheenkorjaus käyttöön: 0 - pois (normaalikäyttöön), 1 = asiakasviestit, 2 - asiakas- ja palvelinviestit
jos($posti -> lähetä()) (
$hälytys = "Viesti lähetetty"; //Lähetä selainvalintaikkunaan viesti kirjeen onnistumisesta
muu
{
$hälytys = "Virhe, sähköpostia ei voi lähettää:".$mail -> ErrorInfo ; //Lähetä virheilmoitus
sisältää"alert.php" ;
Kuva 5 Skripti sähköpostin lähettämiseen SMTP:n kautta valtuutetulla tavalla
Kuten näet, kaikki sähköpostiviestin lähettämiseen suoraan liittyvät rivit, joissa tarvittavat menetelmät ja ominaisuudet on määritetty, on liitetty kommentteihin. Siksi ei ole järkevää toistaa itseämme, mutta voimme viipyä vain joissakin niistä, jotka todellakin vaativat lisäselityksiä, nimittäin:
1. Koska kirje on lähetetty kolmannen osapuolen sähköpostipalvelusta, tässä käytetään tiettyä SMTP-palvelinta vastaavia asetuksia. Tässä tapauksessa Yandex.Mail-palvelimen käyttötapauksessa käytetään seuraavia ominaisuusarvoja:
- Omaisuus Isäntä(pos.28) - Postipalvelimen osoite arvolla smtp.yandex.ru;
- Omaisuus SMTPSecure
- Omaisuus Portti
Nämä ominaisuusarvot on otettu Yandex.Help-sivulta, joka näkyy seuraavassa kuvakaappauksessa.
Mutta tällaista tietoa voidaan saada myös muista lähteistä. Voit tehdä tämän kirjoittamalla sopivan kyselyn hakukoneeseen, esimerkiksi: "Yandex smtp-palvelin". Mistä löydät suuren määrän viittauksia tähän aiheeseen.
Samalla tavalla asetusarvot voidaan saada muilta SMTP-palvelimista. Alla on kuvakaappaus Mail.ru-ohjesivusta, joka näyttää Mail.ru-postipalvelun SMTP-palvelimen asetukset.
Ja näin ollen, jos Mail.ru:ta käytetään kolmannen osapuolen SMTP-palvelimena, tulee käyttää seuraavia PHPMailer-luokan ominaisuuksien arvoja:
- Omaisuus Isäntä(pos.28) - Postipalvelimen osoite (smtp.mail.ru);
- Omaisuus SMTPSecure(pos.32) - Salausprotokolla (ssl);
- Omaisuus Portti(pos. 33) - SMTP-palvelinportti (465).
Samanlaista lähestymistapaa tulisi soveltaa muihin sähköpostipalveluihin.
2. Kiinteistössä Käyttäjätunnus(pos. 30) on tarpeen ilmoittaa verkkotunnuksen postilaatikon täydellinen osoite. Tässä tapauksessa, " [sähköposti suojattu]".
Jos kuitenkin käytät muuta tiliä kuin verkkotunnuksen sähköpostitiliä kirjeiden lähettämiseen, mutta suoraan sähköpostipalveluun liittyvää osoitetta, esim. [sähköposti suojattu]", silloin sisäänkirjautumisen tulee olla vain osa osoitteesta @-merkkiin asti. Tässä tapauksessa kirjautumistunnuksella olisi arvo "palaute".
3. PHPMailer tarjoaa ominaisuuden SMTPDbug(pos. 50), jonka avulla voit näyttää eri tasoisia virheitä selaimen näytöllä. Tämä ominaisuus yksinkertaistaa huomattavasti ongelmien etsimistä komentosarjan virheenkorjauksessa.
Tyypillisesti normaalitilassa, kun arvo on asetettu 0:ksi, yksityiskohtaisen virheinformaation ulostulo on poissa käytöstä. Mutta jos ongelmia ilmenee sähköpostin lähettämisessä tai virheenkorjauksen aikana, on mahdollista käyttää muita arvoja näyttämään merkityksellisempää tietoa virheestä.
Jotta nähdään, miltä tämä näyttää käytännössä, laitetaan asetuksiin väliaikaisesti virhe. Esimerkiksi verkkotunnuksen sähköpostin salasanassa (ominaisuus Salasana, pos. 31). Ja myös näyttää yksityiskohtaiset tiedot virheestä, joka on väliaikaisesti asetettu omaisuuteen SMTPDbug(pos.50) arvo 1. Kun kaikki on vianjäljitetty ja tarkistettu, poistamme SMTP-virheenkorjaustilan käytöstä ja korvaamme 1:n arvolla 0.
Skriptin viimeisessä osassa, kun kaikki tarvittavat ominaisuudet ja menetelmät on määritetty, menetelmää käytetään kirjeen lähettämiseen lähettää()) (pos. 51). Ja jos kirje lähetetään, ja menetelmä lähettää() esinettä varten $postia palauttaa tosi, sitten selainikkunassa muuttujan kautta $hälytys Näyttöön tulee viesti onnistuneesta sähköpostin lähettämisestä (pos. 52).
Jos postia ei jostain syystä voitu lähettää, eikä menetelmä siten voinut palauttaa true, tähän tilaan tulee vastaava virheilmoitus (pos. 55).
Sähköpostin lähetystä tarkistetaan
Kun olemme luoneet skriptin postin lähettämistä varten, meidän on luonnollisesti tarkasteltava "luovuutemme" tulosta. Olemmeko ottaneet kaiken huomioon, emmekä ole tehneet virheitä?
Tätä varten yritetään lähettää palautelomakkeella käyttäjältä viesti sivuston ylläpitäjälle tarkoitetulla tavalla. Alla on kuvakaappaus palautelomakkeesta, jonka kentät on täytetty ennen sen lähettämistä.
Ja tässä on lomakkeen lähettämisen tulos.
Jos selaimen valintaikkunan viestistä käy selvästi ilmi, että kirjettä ei voida lähettää SMTP-yhteyden ongelman vuoksi.
Mutta nyt omaisuutta SMTPDbug(pos. 50) on annettu arvo 1, niin voimme nähdä yksityiskohtaiset tiedot tapahtuneesta virheestä ja selvittää sen esiintymisen syyn.
Seuraava kuvakaappaus osoittaa, että yhteyden muodostamisen yhteydessä havaittiin todennusvirhe, mikä tarkoittaa väärän kirjautumistunnuksen tai salasanan käyttöä.
Kun salasanaepäsopivuus on poistettu (aiemmin väärää salasanaa käytettiin virheen lisätietojen tarkistamiseen), yritämme lähettää sähköpostin uudelleen.
Tällä kertaa kaikki näytti menevän hyvin ja saimme viestin, että postin lähetys onnistui. Ilmeisesti emme tehneet muita virheitä lukuun ottamatta tarkoituksella syötettyä väliaikaista virhettä verkkotunnuksen sähköpostin salasanaan.
Mutta varmistaaksemme, että kirje todella toimitettiin vastaanottajalle, syötetään posti osoitteella [sähköposti suojattu] ja katso tulosta.
Kuten näette, kirje osoitteesta [sähköposti suojattu], josta lähetimme sähköpostiviestin nimeltä "Palaute" onnistuneesti sivuston ylläpitäjälle. Samanaikaisesti kirjeen runko sisältää kaiken sisällön, jonka loimme käsikirjoituksessa palautelomakkeesta saatujen tietojen avulla, nimittäin:
- Lähettäjän nimi: Nikolay;
- Lähettäjän osoite: [sähköposti suojattu];
- Viestin aihe: Tarkistetaan postin lähetystä;
- Viestin sisältö: Testiviesti.
Nyt, kun olet tarkistanut sähköpostin lähettämisen onnistuneesti, voit poistaa SMTP-virheenkorjaustilan käytöstä määrittämällä ominaisuuden SMTPDbug(pos.50) arvo 0.
Näin ollen saimme valmiiksi tehtävän luoda työkalu sähköpostin lähettämiseen SMTP:n kautta valtuutetulla kolmannen osapuolen sähköpostipalvelimella.
Esimerkiksi seuraavassa artikkelissa tarkastelemme, kuinka lähettää vahvistussähköpostit rekisteröidyn käyttäjätilin tietojen palauttamiseksi.
Sivuston lähdetiedostot
Sivuston lähdetiedostot tässä artikkelissa tehdyillä päivityksillä voidaan ladata liitteenä olevista lisämateriaaleista:
- www-hakemistotiedostot
- MySQL-tietokantataulukot
Lähettämällä sähköpostia SMTP:n kautta paikalliselta palvelimelta voit testata viestien lähettämistä paikallisella koneella sijaitsevalta sivustolta tai yksinkertaisemmin paikalliselta palvelimelta. Voit tehdä tämän käyttämällä mitä tahansa sähköpostipalvelua Yandex, Google tai mail.ru.
Ensinnäkin SMTP (Simple Mail Transfer Protocol) on laajalti käytetty verkkoprotokolla, joka on suunniteltu sähköpostin lähettämiseen TCP/IP-verkkojen kautta. Ja kaikilla suosituilla sähköpostipalveluilla on tällaiset protokollat.
Paikallisten palvelimien tultua käyttöön ei enää tarvinnut valita isännöintipalveluntarjoajaa yksittäisten komentosarjojen tai cms-järjestelmien suorituskyvyn tarkistamiseksi, saati maksaa siitä. On paljon helpompaa testata kaikkea tietokoneella, ja sitten voit näyttää kaikille, mitä olet "tehnyt".
Monissa näistä palvelimista on jo sisäänrakennettu ohjelmisto ja tarvittavat toiminnot sähköpostin käsittelyyn; sinun on vain määritettävä se oikein.
Tällaisten sähköpostien toimivuuden tarkistamiseksi vaaditaan vähimmäisvaatimus:
- Voit käyttää Openserveria paikallisena palvelimena.
- Ja yksinkertainen käsikirjoitus, jonka malli löytyy juuri alta.
- Voit käyttää mitä tahansa sähköpostipalvelinta.
Php-sähköpostin lähettäminen SMTP-komentosarjan asennuksen kautta
Yksinkertaista komentosarjamallia, joka voidaan kopioida alla tai ladata sadoilta samanlaisilta sivustoilta, on muokattava.
Ensin sinun on muutettava joitain arvoja komentosarjamallissa.
to
— vaihda postiosoite, johon postiviesti lähetetään.
aihe
- kirjeen aihe
viesti
— itse viesti tai kirjeen runko.
Esimerkki käsikirjoituksestani:
Voit tietysti laajentaa toimintoja hieman ja saada skriptin näyttämään viestin sähköpostin lähettämisestä. Vaikka itse asiassa se on SMTP-palvelin, joka lähettää, ja komentosarja luo vain viestin.
Voit kirjoittaa esimerkiksi tämän:
Kaikkien korvattujen arvojen on oltava lainausmerkeissä, muuten skripti antaa virheen. Tämän jälkeen voit tallentaa komentosarjan paikallisen palvelimen kansioon.
Esimerkiksi: domains/send/index.php ja aloita sähköpostin lähettämisen asetukset SMTP opensrerverin kautta.
Posti saapuu mihin tahansa osoitteeseen, joka määritetään skriptissä arvon sijaan 'on'
, mutta tämän sähköpostin käsittelee ja lähettää täsmälleen se SMTP, joka määritetään openserver-asetuksissa.
- Palvelimen käynnistäminen
- Avaa openserver-moduuli "posti"-valikon asetuksilla
- Täytämme kaikki kentät kuvan osoittamalla tavalla, samalla kun korvaamme käyttäjänimen, lähettäjän sähköpostin ja salasanan oikeasta Yandex-postilaatikosta.
Tallennamme asetukset ja palvelimen uudelleenkäynnistyksen jälkeen pääset käsiksi itse skriptiin. Avaa "Omat sivustot" -kansiosta "lähetä" -kansio, jossa aiemmin tallennettu index.php-skripti sijaitsee.
Heti kun tätä komentosarjaa käytetään, uuteen selainikkunaan ilmestyy tietoja, jotka osoittavat, että komentosarja on valmis.
Tämän jälkeen sinun tulee tarkistaa postilaatikostasi, jonka osoite oli skriptissä, nähdäksesi, onko kirje saapunut.
Jos sitä ei ole, se tarkoittaa, että jotain ei ole määritetty oikein tai kirje päätyi roskapostikansioon.
Kaikki muut asetukset näyttävät samanlaisilta, mutta varmuuden vuoksi lisätiedot eivät ole haitallisia.
Jotta voit määrittää sähköpostin lähettämisen SMTP mail ru -palvelun kautta, sinun on vain korvattava Yandex-parametrit mail ru -parametreilla.
Ja jotta paikallista palvelinta ei rakennettaisi uudelleen joka kerta, on parasta määrittää erilaisia openserver-profiileja. Kuinka tämä tehdään, näytetään opetusvideossa.
Tässä tapauksessa riittää, että lataat profiilin ja kaikki tälle profiilille määritetyt asetukset ovat käytettävissä palvelimen uudelleenkäynnistyksen jälkeen. Se on erittäin kätevä asia ja toimii hyvin yksinkertaisesti.
Jokaiselle profiilille (ei ole väliä miksi sitä kutsutaan) on tehtävä omat asetukset, ellet tietenkään aio käyttää komentosarjoja, cms-järjestelmiä ja sovelluksia eri parametreillä.
Jos ei, voit selviytyä oletusasetuksista.
Mitä tulee SMTP-postiin ru, kaikki on identtistä täällä.
Yandex-tiedot muutetaan mail ru -tiedoiksi
Sähköpostin lähettäminen smtp googlen kautta
Sähköpostin lähettämisen määrittäminen Google SMTP:n kautta vaatii hieman vaivaa.
Ensinnäkin profiilin luominen Googlessa on vaikeampaa kuin muissa Yandex- ja mail ru -järjestelmissä
Toiseksi, järjestelmä ei yksinkertaisesti päästä kirjettä läpi, vaikka antaisit kirjautumistietosi. Aluksi hän lähettää kirjeen, joka sisältää kaikki tarvittavat tiedot lisäohjeista.
Muuten Googlelle se on määritetty täsmälleen samalla tavalla. Vain kaikki tiedot muuttuvat.
Jos haluat määrittää sähköpostin lähettämisen toisen SMTP:n kautta, kaikki tiedot ovat suunnilleen samat.
Jos kaikki toimi sinulle ja kirjeet saapuivat määritetylle vastaanottajalle, kaikki tehtiin oikein. Olisi hienoa, jos jakaisit kokemuksesi kommentteihin.
Jotta tietyllä verkkosivustolla olisi mahdollisuus toimia tehokkaasti ja tuottavasti, sen luomiseen tulee suhtautua mahdollisimman vastuullisesti ja huolellisesti. Verkkokaupan luomiseen käytettävän järjestelmän valinta ansaitsee erityistä huomiota. Tosiasia on, että tavaroiden tai palveluiden myyntiin erikoistuneen kaupallisen alustan tulee mahdollistaa kaikkien tarvittavien toimintojen toteuttaminen ja sen on oltava helppokäyttöinen sekä sivustojen ylläpitoon ja täyttämiseen osallistuville ylläpitäjille että verkkokauppojen asiakkaille. Monet ihmiset ja yritykset, jotka joutuvat miettimään itselleen sopivan sisällönhallintajärjestelmän valintaa, analysoivat, valitaanko Magento vai OkayCMS. Verrataanpa näiden sivustomoottoreiden ominaisuuksia ja ominaisuuksia.
Kun työskentelet omalla verkkosivustollasi, henkilön tai yrityksen on tehtävä paljon vaivaa - vain tässä tapauksessa voit luottaa positiivisiin tuloksiin ja todella tehokkaan työkalun saamiseen. Yksi peruskysymyksistä, joka on ratkaistava jo ennen verkkosivuston luomisen aloittamista, on sopivimman sisällönhallintajärjestelmän valinta. Seuraavaksi vertaamme kahta CMS:ää: Joomla tai OkayCMS ja kiinnitämme huomiota kummankin ominaisuuksiin.
Oma verkkosivusto on yksi tehokkaan ja menestyksekkäästi toimivan liiketoiminnan perusedellytyksistä. Tilastot osoittavat selkeästi erilaisten tavaroiden ostojen ja palvelutilausten lisääntyneen Internetin kautta. Tämän huomioon ottaen useimmat kaupalliset yritykset ovat jo tietoisia omien verkkosivujen tarpeesta. Pelkästään Internet-resurssin olemassaolo ei kuitenkaan riitä luottamaan sen tehokkuuteen, kannattavuuteen ja odotettuihin liiketoimintahyötyihin.
Kun valmistaudut luomaan omaa verkkosivustoa tai avaamaan verkkokauppaa, sinun on otettava huomioon ja analysoitava monia asioita sekä ratkaistava erilaisia ongelmia. Vain tässä tapauksessa voit luottaa siihen, että projektisi tuo myönteisiä tuloksia ja pystyy täysin täyttämään odotuksesi. Verkkokaupan kehittämiseen liittyvistä eri kysymyksistä CMS:n valinta ansaitsee erityistä huomiota. Jotta sinun olisi helpompi päättää optimaalisesta moottorista itsellesi
Suunnitellessaan oman verkkosivuston luomista tulevalle verkkokaupalle, melko suuri joukko ihmisiä ja jopa myyntiin erikoistuneita yrityksiä joutuu vaikean ja erittäin tärkeän valinnan eteen: mikä olemassa olevista sisällönhallintajärjestelmistä valita. Jos mietit mitä valita: PrestaShop tai OkayCMS, suosittelemme lukemaan tämän artikkelin, jossa vertaamme näitä kahta järjestelmää Internet-sivustojen, erityisesti verkkokauppojen, luomiseen.
Koska nimettömien viestien lähettäminen virtuaalisista Windows-hostingpalvelimista on kiellettyä, kirjeiden lähettäminen kannattaa tehdä SMTP-palvelimen kautta, johon on myös mahdollista käyttää sähköpostijärjestelmäämme.
Kuinka lähettää sähköpostia PHP:llä?
Käyttämällä mitä tahansa PHP-luokkaa, joka tukee valtuutusta smtp-palvelimella. Voit esimerkiksi käyttää PHPMailer-luokkasarjaa.
Voit myös käyttää esimerkkiämme, joka toteuttaa kirjeiden lähettämisen smtp-palvelimella, joka vaatii valtuutuksen. Siksi älä unohda lisätä komentosarjaan asianmukaiset käyttöoikeustiedot, esimerkiksi:
// Jos haluat näyttää SMTP-istuntolokin, voit poistaa kommentin seuraavalta riviltä. // $_SERVER["debug"] = tosi; toiminto MailSmtp ($vastaanotin, $aihe, $sisältö, $otsikot, $debug = 0) ( $smtp_server = "smtp.site"; // SMTP-palvelimen osoite$smtp_port = 25 ; // SMTP-palvelimen portti$smtp_user = " [sähköposti suojattu]"
;
// Käyttäjätunnus valtuutusta varten SMTP-palvelimella$smtp_password = "SALASANA" ; // Salasana valtuutusta varten SMTP-palvelimella$mail_from = " [sähköposti suojattu]"
;
// Postilaatikko, josta kirje lähetetään$sukka = fsockopen ($smtp_server, $smtp_port, $errno, $errstr, 30); $str = fgets ($sukka, 512); if (! $sock ) ( printf ( "Palvelinta ei ole luotu\n" ); exit(1 ); ) smtp_msg ($sock , "HELO " . $_SERVER [ "SERVER_NAME" ]); smtp_msg($sock, "TODISTA KIRJAUDU"); smtp_msg ($sukka, base64_encode ($smtp_user)); smtp_msg ($sukka, base64_encode ($smtp_salasana)); smtp_msg ($sock , "POSTI LÄHETTÄJÄ:<"
.
$mail_from
.
">" ); smtp_msg ($sock , "RCPT TO:<"
.
$reciever
.
">" ); smtp_msg ($sock , "DATA" ); $headers = "Aihe: " . $aihe . "\r\n" . $headers ; $data = $headers . "\r\n\r\n" " ! $sock ) ( printf ("Broken socket!\n" ); exit(1 ); ) if (isset($_SERVER [ "debug" ]) && $_SERVER [ "debug" ]) ( printf ( "Lähetä meiltä" : %s
" , nl2br (htmlspecialchars ($msg )); ) fputs ($sock , " $msg \r\n" ); $str = fgets ($sock , 512 ); if (! $sock ) ( printf ( "Socket on alas\n" ); exit(1); ) else (if (isset($_SERVER [ "debug" ]) && $_SERVER [ "debug" ]) ( printf ("Saatu palvelimelta: %s
" , nl2br (htmlerikoismerkit ($str )); ) $e = räjähtää (" " , $str ); $koodi = array_shift ($e ); $str = implode ( " " , $e ); if ($koodi > 499 ) ( printf ( "Ongelmia SMTP-keskustelussa.
Koodi %d.
Viesti %s
"
, $koodi , $str ); poistu(1); ) ) ) ?>
Lataa esimerkki valmiista komentosarjasta MailSmtp()-funktiolla: smtpauth.php.sample
Voit käyttää yllä kuvattua MailSmtp()-funktiota korvaamaan suoraan mail()-funktion; harkitse esimerkkiä PHP:n yksinkertaisimmasta muodosta:
// Viestin otsikot, ne määrittelevät viestin koodauksen, Lähettäjä-, Vastaanottaja-kentät jne.$headers = "MIME-versio: 1.0\r\n" ; $otsikot .= "Sisältötyyppi: text/html; charset=windows-1251\r\n"; $headers .= "Vastaanottaja: $vastaanottaja \r\n" ; $otsikot .= "Lähettäjä: Lähettäjän nimi "
;
// posti ($vastaanottaja, $aihe, $viesti, $otsikot); request_once "smtpauth.php" ; MailSmtp ($vastaanottaja, $aihe, $viesti, $otsikot); ) ?>
Jotta tämä lomake toimisi ilman mail()-funktiota, sisällytimme smtpauth.php-tiedoston vaatimuksen_once kautta ja kutsuimme siinä kuvatun MailSmtp()-funktion argumenteilla, jotka ovat samanlaisia kuin mail(). Samalla kommentoimme mail()-kutsua itseään koodissa välttääksemme virheet skriptiä suoritettaessa.
Kuinka lähettää sähköposteja ASP.NET:in kautta?
Jos käytät versiota 2.0, käytä MailMessage-luokkaa System.Net.Mail), hyvin kuvattu.
Alla on esimerkkejä sen käytöstä C#- ja VisualBasic-kielissä:
Esimerkki C#-kielelle:
<% @Page Language="c#" %>
<% @Import Namespace="System.Net.Mail" %>
<% @Import Namespace="System.Net" %>
<%
MailMessage message = new MailMessage(); // uuden kirjeen luominen viesti.To.Add(" [sähköposti suojattu]"); // lisätään vastaanottajan osoite viesti.Lähettäjä = uusi postiosoite("from@" domain.tld", "Lähettäjän nimi"); // ilmoittaen lähettäjän nimen ja osoitteen message.Subject = "Viestin aihe"; // täsmentämällä kirjeen aihe message.BodyEncoding = System.Text.Encoding.UTF8; // kirjainkoodauksen määrittäminen viesti.IsBodyHtml = false; // kirjainmuodon määrittäminen (true - HTML, false - ei HTML) message.Body = "Viestiteksti"; // täsmentämällä kirjeen teksti (runko). SmtpClient client = new SmtpClient("smtp.site",25); // uuden yhteyden luominen palvelimeen "smtp.site" client.DeliveryMethod = SmtpDeliveryMethod.Network; // määrittelee viestin lähetystavan client.EnableSsl = false; // poistaa käytöstä tarpeen käyttää suojattua yhteyttä palvelimeen client.UseDefaultCredentials = false; // poista oletusarvoisten valtuutustietojen käyttö käytöstä client.Credentials = new NetworkCredential("postmaster@ domain.tld", "***Salasana***"); // määrittämällä tarvittavat tiedot (käyttäjänimi ja salasana) valtuutusta varten SMTP-palvelimella asiakas.Lähetä(viesti); // Lähetä viesti
%>
Lataa esimerkki valmiista lomakkeesta, joka havainnollistaa tämän menetelmän käyttöä: MailForm.aspx.
Esimerkki VisualBasic-kielestä:
<% @Page Language="VB" Debug="true" %>
<% @Import Namespace="System.Net.Mail" %>
<% @Import Namespace="System.Net" %>
<%
Dim smtpMssg AS new MailMessage
smtpMssg.From = New MailAddress ("admin@domain.tld", "Lähettäjän_nimi") smtpMssg.To.Add (" [sähköposti suojattu]") "lisätään vastaanottajan osoite smtpMssg.Subject = "Sähköpostin aihe" "merkintä kirjeen aiheesta smtpMssg.Body = "Viestiteksti" " merkintä kirjeen tekstistä (rungosta). smtpMssg.BodyEncoding = System.Text.Encoding.UTF8 " merkintä kirjainkoodauksesta smtpMssg.IsBodyHtml = false " merkintä kirjainmuodosta (tosi - HTML, false - ei HTML) Himmeä SmtpMail uutena SmtpClient("smtp.site", 25) " ilmoitus uudesta objektista, jonka tyyppi on "SmtpClient" SmtpMail.DeliveryMethod = SmtpDeliveryMethod.Network "merkintä kirjeen toimitustavasta SmtpMail.UseDefaultCredentials = Väärin "poistetaan oletusarvoisesti valtuutustietojen käyttö" SmtpMail.EnableSsl = Väärin " poistaa käytöstä tarpeen käyttää suojattua yhteyttä palvelimeen SmtpMail.Credentials = new NetworkCredential("postmaster@ domain.tld", "***Salasana***") "joka ilmoittaa tarvittavat tiedot (käyttäjänimi ja salasana) valtuutusta varten SMTP-palvelimella SmtpMail.Send(smtpMssg) "lähettää viestiä
%>
Siellä on myös vanhentunut (ja vanhentunut) SmtpMail-luokka (käyttäen nimiavaruutta System.Web.Mail). Alla on esimerkki sen käytöstä VisualBasic-kielellä:
<% @Page Language="VB" Debug="true" %>
<% @Import Namespace="System.Web" %>
<% @Import Namespace="System.Web.Mail" %>
<%
Dim smtpMssg = new MailMessage " ilmoitus uudesta "MailMessage"-tyypin objektista smtpMssg.From = "Lähettäjän_nimi domain.tld>" "Lähettäjän nimi ja osoite smtpMssg.To = "admin@ domain.tld" " ilmoitus vastaanottajan osoitteesta smtpMssg.BodyFormat = MailFormat.Text " merkintä kirjainmuodosta smtpMssg.BodyEncoding = Koodaus.UTF8 "osoittaa kirjainkoodausta smtpMssg.Subject = "Sähköpostin aihe" "merkintä kirjeen aiheesta smtpMssg.Body = "Viestiteksti" " merkintä kirjeen tekstistä smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate",1) "osoittaa SMTP-valtuutuksen tarpeen palvelimella smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "admin@ domain.tld") "käyttäjänimi valtuutusta varten smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "***salasana***") "salasana valtuutusta varten SmtpMail.SmtpServer = "smtp.site" " määrittämällä SMTP-palvelimen osoitteen SmtpMail.Send(smtpMssg) "lähettää viestiä
%>
Kuinka lähettää sähköpostia ASP:n avulla?
Huomaa, että kun käytät smtp-palvelinta, vaaditaan valtuutus, joten älä unohda lisätä komentosarjaan tarvittavat pääsytiedot, esimerkiksi:
<%
iConfig = Server.CreateObject("CDO.Configuration")
Set iConfig = Server.CreateObject("CDO.Configuration")
With iConfig.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.сайт"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Item("http://schemas.microsoft.com/cdo/configuration/languagecode") = "ru"
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "postmaster@domain.tld" .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "salasana" .Päivitä Lopeta joukolla cdoMessage = CreateObject("CDO.Message") With cdoMessage Set .Configuration = iConfig .From = "Testaa käyttäjä domain.tld>" .To = "Käyttäjä " .Subject = "Hei, käyttäjä" .TextBody = "Kirjoitan tämän viestin ASP-komentosarjasta." .Lähetä Lopeta Aseta cdoMessage = Ei mitään Aseta iConfig = Ei mitään %>
Joissakin sisällönhallintajärjestelmissä on jo sisäänrakennetut työkalut kirjeenvaihdon tai vastaavien moduulien lähettämiseen; katsotaanpa suosituimpia.
Wordpress
Tätä CMS:ää varten on erityinen moduuli "WP Mail SMTP", esimerkki sen määrityksestä on kuvattu moduulisivulla.
Kiinnitä huomiota esimerkin kuvaan; sähköpostijärjestelmässämme on käytettävä porttia 25, eikä SSL-salausta vaadita.
Joomla
Siirry hallintapaneelissa "Yleiset asetukset" -osioon, valitse "Palvelin"-välilehti. "Mail"-kentässä sinun on valittava lähetystavaksi "SMTP-palvelin", kenttiin "SMTP-palvelimen osoite" ja "SMTP-sisäänkirjautuminen" ja "SMTP-salasana" määritetään asianmukaiset sähköpostijärjestelmän tiedot, esimerkiksi: smtp.site, laatikko@oma_verkkotunnus ja vastaava Salasana.
Drupal
Tällä CMS:llä on myös oma moduuli SMTP-palvelimen kanssa työskentelyä varten PHPMailer. Voit ladata tämän moduulin sen sivulta CMS Drupal -verkkosivustolta; moduulin asennuksen kuvaus löytyy sen mukana olevasta arkistosta.
NetCat
Tässä CMS:ssä ei ole sisäänrakennettuja toimintoja SMTP-palvelimen kanssa työskentelyä varten. Jos haluat lähettää sähköpostia sivuston komentosarjoilla, voimme tarjota ratkaisumme, jonka yhdistämiseksi sinun on suoritettava seuraavat vaiheet:
domain.tld tulee korvata verkkotunnuksellasi.
Ehdotettu ratkaisu toimii kaikkien NetCat-moduulien kanssa, jotka käyttävät tämän CMS:n vakiotoimintoja postin lähettämiseen.