Sende e-post via smtp med php-autorisasjon. Sender e-post via SMTP i PHP. Sender php-post via SMTP-skriptoppsett

Mail PHP

Denne funksjonen er implementert som standard som sending av e-post. Denne funksjonaliteten krever ikke en tredjepartsserver for å videresende e-post. For å sjekke om denne funksjonen er korrekt, lag bare en test.php-fil i mappen med nettstedet og plasser følgende kode der:

Hvor i stedet "E-POSTMOTTAKER" Skriv inn e-posten som brevet skal sendes til.

Plass denne filen ved roten av nettstedet ditt.

Deretter skriver du inn www.YourDomain/test.php i adressefeltet. Hvis et brev er mottatt på den angitte e-posten, fungerer hostingen din korrekt med funksjonen for å sende brev " Mail PHP" . Det er mulig at brevet har havnet i spam, så det må også sjekkes.

Hvis brevet kom i en uforståelig koding, endre linjen: "Sjekker e-postsending""Sjekker sending av e-post", "Content-type:text/html;charset=utf-8".

Og gjenta å sende brevet gjennom adressefeltet i nettleseren din.

Hvis testbrevet etter de ovennevnte manipulasjonene ikke når den endelige mottakeren, må du kontakte din vertstekniske støtte.

Blant manglene denne metoden Det er verdt å merke seg at arbeidet ikke er permanent denne metoden. Det kan være avbrudd i sendingen av e-poster på vertssiden.

Den største ulempen med denne metoden er at alle brev som sendes til kundenes e-post ikke vil bli gjenkjent av e-posttjenester (gmail, mail.ru, yandex.ru) da de ble sendt direkte fra nettstedet ditt.

Gmail-e-posttjenesten viser disse bokstavene med et spørsmålstegn og signatur: «Gmail-systemet kunne ikke bekrefte at dette brevet ble sendt fra domenet YourDomain. Dette kan være spam.»

For å unngå denne situasjonen .

SMTP (Simple Mail Transfer Protocol)

SMTP - protokoll for e-postoverføring. Totalt, for å sette opp e-postoverføring ved hjelp av denne protokollen, trenger du selve SMTP-serveren. Det vanligste alternativet for å bruke bedrifts (domene) e-post yandex.ru som en SMTP-server er https://pdd.yandex.ru/.

Først av alt er det nødvendig konto (post) yandex, på grunnlag av hvilke e-poster vil bli opprettet for ditt domene: “ordre@YourDomain” “info@YourDomain”... Hovedkontoen vil ikke være synlig noe sted og brukes kun til å lage domene-e-poster basert på den i fremtiden.

Etter å ha logget inn på din personlig konto Yandex-domenepost opprettes ved å bruke lenken https://pdd.yandex.ru/. Dette er domene-e-posten som brukere vil se i "Avsender"-feltet.

"Avsender"-feltet er obligatorisk når du sender e-post via SMTP. Bruke SMTP til å sende brev, en kombinasjon av " Domene" - "E-post", og dermed gjenkjennes brevene av posttjenester.


Blant ulempene med denne metoden er det verdt å merke seg umuligheten av å "laste" et domenepostportrett, siden e-posttjenestene i seg selv ennå ikke tilbyr denne funksjonaliteten.

2019-08-05

Hei, kjære besøkende!

Tilgi meg for forsinkelsen med å oppdatere bloggen. Men det er en helt forståelig forklaring på dette. Tross alt var det sommer, dacha, gjester, skog, vann og mye mer, som ikke tillot meg å takle problemene med å lage et nettsted. Men nå har jeg frigjort meg litt, gjestene har gått, og jeg tror at nå skal jeg definitivt være oppmerksom på dette.

Så, etter at vi i den siste artikkelen koblet e-posten til domenet vårt til en av e-posttjenestene, la oss nå se hvordan du kan sende e-post fra nettstedet. Dessuten på en slik måte at våre brev ikke havner i SPAM, men er pålitelig, med høy grad av sannsynlighet, levert til våre mottakere.

Generelt er det en innebygd mail()-funksjon for å sende brev i PHP. Men det skal bemerkes at til tross for enkelheten til denne metoden (i dette tilfellet, for å sende brev er det nok å spesifisere bare en kodelinje med visse parametere), har bruken av dette alternativet en betydelig ulempe knyttet til problemet med SPAM .

Faktum er at anti-SPAM-filtrene til e-postservere på mottakerens side egentlig ikke favoriserer brev sendt gjennom mail()-funksjonen. Og i de fleste tilfeller blir slike meldinger filtrert eller til og med slettet før de når adressaten.

Og for å eliminere slike tilfeller så mye som mulig, brukes vanligvis et annet alternativ, der brev sendes som om det var gjort av en tredjeparts posttjeneste.

Denne metoden kalles å sende e-post via SMTP med autorisasjon. Som vi skal se på i dag ved å bruke eksemplet med å sende inn et skjema tilbakemelding. For dette vil vi dessuten bruke det ganske kjente og populære PHPMailer-biblioteket, som lar deg ganske enkelt organisere sending av brev via SMTP.

  • Hvordan vil vi sende tilbakemeldingsbrev
  • Opprette et tilbakemeldingsskjema
  • Installere PHPMailer-biblioteket
  • Vi lager et skript for å sende e-post via SMTP
  • Sjekker e-postsending
  • Nettstedets kildefiler

Hvordan vil vi sende tilbakemeldingsbrev

Før du begynner praktisk jobb Etter å ha sendt tilbakemeldingsbrev vil vi først bestemme hvordan vi skal gjøre det.

Tilbakemeldingsskjemaet er utformet slik at brukeren kan kommunisere med nettstedadministratoren for å formidle budskapet sitt. Vanligvis består dette skjemaet av flere felt og en "Send"-knapp.

For å sende en e-post er det i prinsippet nok å bruke bare noen få felt som gir tilstrekkelig informasjon om brukeren og innholdet i meldingen, for eksempel:

  • "Navn" - for å skrive inn navnet på meldingsavsenderen;
  • "E-post" - for adressen E-post avsender;
  • "Meldingsemne";
  • "Meldingstekst".

Selv om du kan legge til andre. For eksempel et telefonnummer, hvis dette virkelig er nødvendig.

I vårt tilfelle vil slike brev bli sendt til nettstedadministratorens adresse fra en ekte postkasse med autorisasjon på posttjenesten som domenet vårt er koblet til.

Siden vi i forrige artikkel fokuserte på å sjekke tilkoblingen av domenepost til Yandex.Mail-tjenesten, vil vi sende e-post for dette alternativet. Selv om dette ikke er viktig. Nedenfor vil du se de alternativene som, når de endres, lar deg sende e-post via e-postserver Mail.ru.

Som en ekte postkasse som brev vil bli sendt fra, vil vi bruke kontoen til en nyopprettet domenepostbruker, for eksempel med adressen [e-postbeskyttet]. Og vi vil sende disse brevene til Postkasse administrator [e-postbeskyttet], som vi tidligere opprettet i forrige artikkel.

Dermed vil avsenderen av brevet fra tilbakemeldingsskjemaet være postkassen [e-postbeskyttet]., og mottakeren - [e-postbeskyttet]. I dette tilfellet vil all informasjon om brukeren som sendte meldingen med innholdet bli overført i hoveddelen av det sendte brevet.

Opprette et tilbakemeldingsskjema

Etter at vi har bestemt oss for fremgangsmåten for å sende brev, vil vi nå lage et tilbakemeldingsskjema som vi skal gjøre dette med.

Nedenfor er HTML-koden for dette skjemaet, som vi vil plassere på "Kontakter"-siden (fil kontakty.php i artikkelkatalogen).

    "artikkel" >

    Kontakter

    Tilbakemelding

    "kontakt" handling = "#" metode = "post" >

    Tilbakemeldings-skjema

    For alle spørsmål, forespørsler og forretningsforslag kan du kontakte oss ved å bruke tilbakemeldingsskjemaet nedenfor.

    "kontakt blokk" >

    "kontakt-inngang" >

    "tekst" id = "kontakt navn" navn = "kontakt navn" tittel = "Navnet må være på russisk og inneholde minst 3 tegn" mønster = "{3,}" nødvendig >

  1. "tom-kontakt" >

    "kontakt-inngang" >

    "e-post" id = "Kontakt Epost" navn = "Kontakt Epost" nødvendig >

  2. "kontakt-emne" >

  3. "kontakt-kommentar" >

  4. "kontakt-knapp" >

    "sende inn" navn = "kontakt-knapp" verdi = "Sende" >

Fig.1 HTML-kode for tilbakemeldingsskjemaet

Du kan se hvordan tilbakemeldingsskjemaet som vises her til slutt ser ut i følgende skjermbilde.

Dermed nødvendig skjema opprettet. Og nå kan du gå videre til problemene med å behandle og sende data i form av en e-postmelding.

Installere PHPMailer-biblioteket

Som tidligere nevnt, vil vi bruke PHPMailer-biblioteket for å sende e-post, noe som i stor grad vil forenkle sending av e-post via SMTP-protokoll med autorisasjon på en tredjeparts posttjeneste.

For å installere den må du laste ned nødvendige filer. Dette kan gjøres fra GitHub-netttjenesten ved å bruke Composer (en pakkeavhengighetsbehandling for PHP). Eller bare last ned de nødvendige filene på vanlig måte.

skjermbilde 73

Nedenfor er GitHub-netttjenestesiden, hvor lenken til den vanlige nedlastingen av PHPMailer-biblioteket er merket.

I tillegg, siste versjon 6.0.7, som ble lagret da denne artikkelen ble skrevet, kan lastes ned fra vedlagte materialer.

I alle fall bør den resulterende arkivfilen pakkes ut, hvoretter den utpakkede PHPMailer-master-mappen med alt innholdet skal plasseres i roten av nettstedet. Samtidig, for enkelhets skyld, kan du gi det nytt navn til PHPMailer. Nedenfor er innholdet i PHPMailer-mappen plassert i rotkatalogen til nettstedet.

Dermed installerte vi PHPMailer-biblioteket. Deretter kan vi begynne å lage et skript som vi sender e-postmeldinger med fra nettsiden vår.

Vi lager et script for å sende e-post via SMTP

For å komponere skriptet er det nok å bruke anbefalingene for bruk av PHPMailer gitt på GitHub-siden, som vi tidligere brukte til å laste ned biblioteket.

De indikerer spesielt at i begynnelsen av skriptet er det nødvendig å importere PHPMailer-klasser til det globale navneområdet. Og spesifikke linjer med tilsvarende kode er gitt. Det er også eksempler på bruk av egenskapene og metodene til PHPMailer, inkludert for muligheten til å sende e-post via SMTP.

Men hvis dette ikke er nok, kan du også bruke dokumentasjonen, som inneholder en beskrivelse av alle egenskapene og metodene til dette biblioteket.

skjermbilde 74

Nedenfor er skriptkoden for å sende post fra tilbakemeldingsskjemaet via SMTP med autorisasjon. Hvor alle linjene relatert til PHPMailer er gitt med forklaring og uthevet med lys bakgrunn.

Resten av delen, inkludert fragmenter knyttet til mottak og behandling av data fra skjemaet, som vi tidligere måtte bruke i andre prosessorer, er indikert med en mørk bakgrunn. De ble diskutert i noen detalj tidligere i en artikkel viet spesifikt til spørsmålene om innhenting og verifisering av data fra et skjema i PHP. Der vi også snakket om den universelle brukerfunksjonen for validering og behandling av skjemadata check_symbol().

Vi vil plassere dette skriptet i den samme kontakty.php-filen som vi tidligere opprettet tilbakemeldingsskjemaet i.

    //----Skript for å sende e-post via SMTP med PHPMailer----

    //Importer PHPMailer-klasser til det globale navneområdet. De skal være øverst i skriptet, ikke inne i funksjonen

    bruk PHPMailer\PHPMailer\PHPMailer ;

    bruk PHPMailer\PHPMailer\Unntak ;

    hvis (!tømme($_POST["kontakt-knapp" ])) (

    $navn = $_POST["kontaktnavn" ];

    $navn = check_symbol ($navn, "Navn", "1", "/^+\z/iu" );

    $email = $_POST["kontakt-e-post" ];

    $email = check_symbol ($email, "E-post" , "1" , "/^+@(+\.)+(2,6)\z/i");

    $subject = $_POST["kontaktemne" ];

    $subject = check_symbol ($subject, "Meldingsemne" , "1" , "0" );

    $comment = $_POST["kontaktkommentar" ];

    $comment = check_symbol ($comment, "Meldingstekst", "1" , "0" );

    hvis (!tømme($GLOBALS["alert" ])) (

    $alert = "Skjemadataene ble ikke sendt. Følgende feil ble funnet:\n".$alert;

    inkludere"alert.php" ;

    ellers {

    //Koble til biblioteket

    krever"PHPMailer/src/PHPMailer.php" ;

    krever"PHPMailer/src/Exception.php" ;

    krever"PHPMailer/src/SMTP.php" ;

    $mail = ny PHPMailer(); //Klasseinitialisering

    $fra = " [e-postbeskyttet]" ; //E-postadresse som brevet er sendt fra

    $to = " [e-postbeskyttet]" ; //Adressen til mottakeren

    $mail -> isSMTP(); //Bruk SMTP-protokoll

    $mail -> Host = "smtp.yandex.ru" ; //E-postserveradresse

    $mail -> SMTPAuth = ekte ; //Aktiver autorisasjonsmodus

    $mail -> Brukernavn = " [e-postbeskyttet]" ; //Logg på fra en domene-e-post som er koblet til en tredjeparts e-posttjeneste (i dette tilfellet Yandex.Mail)

    $mail -> Passord = "27MrDon89" ; //Passord for domenepost

    $mail -> SMTPSecure = "ssl" ; //Krypteringsprotokoll

    $mail -> Port = "465" ; //SMTP-serverport

    $mail -> CharSet = "UTF-8" ; //Koding

    $mail -> setFrom ($from, "Administrator" ); //Adresse og navn på avsender

    $mail -> addAddress ($to, "Administrator" ); //Mottakers adresse og navn

    $mail -> isHTML ( ekte ); //Sett e-postformat til HTML

    $mail -> Emne = "Tilbakemeldingsskjema sendt inn"; //E-postemne (overskrift)

    $mail -> Brødtekst = "

    Avsenders navn: $navn

    Avsenders adresse: $e-post

    Meldingsemne: $emne

    Meldingsinnhold: $comment



    " ; //Meldingens innhold

    $mail -> AltBody = "Alternativ bokstavtekst"; //Alternativ e-post hvis e-postklienten ikke støtter HTML-format

    $mail -> SMTPDebug = 0 ; //Aktiver SMTP-feilsøking: 0 - av (for normal bruk), 1 = klientmeldinger, 2 - klient- og servermeldinger

    hvis($mail -> send()) (

    $alert = "Melding sendt"; //Skriv ut en melding i nettleserdialogboksen om vellykket sending av brevet

    ellers {

    $alert = "Feil, e-post kan ikke sendes: ".$mail -> ErrorInfo ; //Skriv ut en feilmelding

    inkludere"alert.php" ;

Fig.5 Skript for å sende e-post via SMTP med autorisasjon

Som du kan se, er alle linjer som er direkte relatert til å sende en e-postmelding, der de nødvendige metodene og egenskapene er spesifisert, ledsaget av kommentarer. Derfor gir det ingen mening å gjenta oss selv, men vi kan bare dvele ved noen av dem, som faktisk krever ytterligere forklaringer, nemlig:

1. På grunn av at brevet er sendt fra en tredjeparts posttjeneste, brukes innstillingene som tilsvarer den spesifikke SMTP-serveren her. I dette tilfellet, for bruk av Yandex.Mail-serveren, brukes følgende egenskapsverdier:

  • Eiendom Vert(pos.28) - E-postserveradresse med verdien smtp.yandex.ru;
  • Eiendom SMTPSikker
  • Eiendom Havn

Disse egenskapsverdiene ble hentet fra Yandex.Help-siden vist i følgende skjermbilde.

Men slik informasjon kan også hentes fra andre ressurser. For å gjøre dette, skriv bare inn den aktuelle spørringen i en søkemotor, for eksempel: "Yandex smtp-server". Hvor kan du finne et stort antall referanser om dette problemet.

På lignende måte kan innstillingsverdier hentes fra andre SMTP-servere. Nedenfor er et skjermbilde av Mail.ru-hjelpesiden, som viser innstillingene til SMTP-serveren til Mail.ru-posttjenesten.

Og derfor, i tilfelle du bruker Mail.ru som en tredjeparts SMTP-server, bør følgende verdier for egenskapene til PHPMailer-klassen brukes:

  • Eiendom Vert(pos.28) - E-postserveradresse (smtp.mail.ru);
  • Eiendom SMTPSikker(pos.32) - Krypteringsprotokoll (ssl);
  • Eiendom Havn(pos. 33) - SMTP-serverport (465).

En lignende tilnærming bør brukes på andre e-posttjenester.

2. I eiendom Brukernavn(pos. 30) er det nødvendig å angi hele adressen til domenepostkassen. I dette tilfellet, " [e-postbeskyttet]".

Men hvis du bruker en annen konto enn en domenepostkonto for å sende brev, men en adresse som er direkte relatert til posttjenesten, for eksempel " [e-postbeskyttet]", så skal påloggingen bare være den delen av adressen opp til "@"-tegnet. I dette tilfellet vil påloggingen ha verdien "feedback".

3. PHPMailer tilbyr en egenskap SMTPDebug(pos. 50), som lar deg vise ulike nivåer av feil på nettleserskjermen. Denne funksjonen forenkler i stor grad å finne problemer ved feilsøking av et skript.

Vanligvis, i normal modus, med verdien satt til 0, er utdata av detaljert feilinformasjon deaktivert. Men hvis det oppstår problemer med å sende e-post, eller under feilsøking, er det mulig å bruke andre verdier for å vise mer meningsfylt informasjon om feilen.

For å se hvordan dette ser ut i praksis, la oss midlertidig introdusere noen feil i innstillingene. For eksempel i domenepostpassordet (property Passord, pos.31). Og også for å vise detaljert informasjon om feilen, midlertidig satt i eiendommen SMTPDebug(pos.50) verdi 1. Etter, når alt er feilsøkt og sjekket, vil vi deaktivere SMTP-feilsøkingsmodusen, og erstatte 1 med 0.

I den siste delen av skriptet, etter å ha spesifisert alle nødvendige egenskaper og metoder, brukes metoden for å sende brevet sende()) (pos. 51). Og hvis brevet er sendt, og metoden sende() for objekt $mail returnerer sant, deretter i nettleserdialogen gjennom variabelen $alert En melding om vellykket e-postsending vil vises (pos. 52).

Hvis e-posten av en eller annen grunn ikke kunne sendes, og metoden følgelig ikke kunne returnere sann, vil denne tilstanden bli ledsaget av en tilsvarende feilmelding (pos. 55).

Sjekker e-postsending

Etter at vi har laget et skript for å sende e-post, må vi naturligvis se på resultatet av vår "kreativitet". Har vi tatt hensyn til alt her, og har vi ikke gjort noen feil?

For å gjøre dette, la oss prøve, som ment, å sende en melding fra brukeren til nettstedadministratoren fra tilbakemeldingsskjemaet. Nedenfor er et skjermbilde av tilbakemeldingsskjemaet med feltene fylt ut før det sendes inn.

Og her er resultatet av innsending av skjemaet.

Hvor det, fra meldingen i nettleserdialogboksen, er klart at brevet ikke kan sendes på grunn av et problem med SMTP-tilkoblingen.

Men, siden nå eiendommen SMTPDebug(pos. 50) er tildelt verdien 1, så kan vi se detaljert informasjon om feilen som oppsto og finne ut årsaken til at den oppsto.

Følgende skjermbilde viser at når du prøver å koble til, ble det oppdaget en autentiseringsfeil, noe som betyr bruk av feil pålogging eller passord.

Etter å ha eliminert passordmismatchet (tidligere ble et feil passord brukt for å kunne sjekke utdata av tilleggsinformasjon om feilen), vil vi prøve å sende e-posten på nytt.

Denne gangen så alt ut til å gå bra og vi fikk en melding om at e-posten ble sendt. Tilsynelatende, bortsett fra den bevisste midlertidige feilen i domenepostpassordet, gjorde vi ingen andre feil.

Men for å være sikker på at brevet faktisk ble levert til adressaten, la oss skrive inn posten med adressen [e-postbeskyttet] og se på resultatet.

Som du kan se, brevet fra adressen [e-postbeskyttet], hvorfra vi sendte en e-postmelding med navnet "Tilbakemelding" og nådde nettstedadministratoren. Samtidig inneholder brødteksten alt innholdet som vi genererte i skriptet ved å bruke data mottatt fra tilbakemeldingsskjemaet, nemlig:

  • Avsenderens navn: Nikolay;
  • Avsenders adresse: [e-postbeskyttet];
  • Meldingsemne: Sjekker e-postsending;
  • Meldingsinnhold: Testmelding.

Nå, etter å ha sjekket e-postsendingen, kan du deaktivere SMTP-feilsøkingsmodusen ved å tilordne egenskapen SMTPDebug(pos.50) verdi 0.

Dermed fullførte vi oppgaven med å lage et verktøy for å sende e-post via SMTP med autorisasjon ved hjelp av en tredjeparts e-postserver.

For eksempel, i neste artikkel, vil vi se på hvordan du sender bekreftelses-e-poster for å gjenopprette registrerte brukerkontodata.

Nettstedets kildefiler

Kildefilene til nettstedet med oppdateringene som ble gjort i denne artikkelen kan lastes ned fra det vedlagte tilleggsmaterialet:

  • www-katalogfiler
  • MySQL-databasetabeller

Sende e-post via SMTP fra en lokal server lar deg teste sending av meldinger fra et nettsted som ligger på en lokal maskin, eller enklere, en lokal server. For å gjøre dette kan du bruke hvilken som helst e-posttjeneste Yandex, Google eller mail.ru.

Først av alt er SMTP (Simple Mail Transfer Protocol) en mye brukt nettverksprotokoll designet for å overføre e-post over TCP/IP-nettverk. Og alle populære e-posttjenester har slike protokoller.

Med bruken av lokale servere var det ikke lenger behov for å velge en hostingleverandør for å sjekke ytelsen til individuelle skript eller cms-systemer, mye mindre betale for det. Det er mye lettere å teste alt på en datamaskin, og da kan du vise alle hva du har "gjort".

Mange av disse serverne har allerede innebygd programvare og den nødvendige funksjonaliteten for å jobbe med e-post; du trenger bare å konfigurere den riktig.

For å sjekke funksjonaliteten til slik e-post, kreves et minimum:

  • Du kan bruke Openserver som en lokal server.
  • Og et enkelt skript, malen som du finner rett nedenfor.
  • Du kan bruke hvilken som helst e-postserver.

Sender php-post via SMTP-skriptoppsett

En enkel skriptmal som kan kopieres nedenfor, eller lastes ned fra hundrevis av lignende nettsteder, må redigeres.

Først må du endre noen verdier i skriptmalen.
til — endre til postadressen som e-postmeldingen skal sendes til.
Emne - brevemne
beskjed — selve meldingen, eller brødteksten i brevet.

Eksempel på manuset mitt:

Du kan selvfølgelig utvide funksjonaliteten litt og få scriptet til å vise en melding om sending av e-post. Selv om det faktisk er SMTP-serveren som gjør sendingen, og skriptet genererer kun meldingen.

Du kan for eksempel skrive dette:

Alle erstattede verdier må stå i anførselstegn, ellers vil skriptet gi en feil. Etter dette kan du lagre skriptet til den lokale servermappen.

For eksempel: domains/send/index.php og begynn å sette opp sending av e-post via SMTP opensrerver.

E-post kommer til en hvilken som helst adresse som er spesifisert i skriptet i stedet for verdien 'til' , men denne e-posten vil bli behandlet og sendt av nøyaktig SMTP-en som vil spesifiseres i openserver-innstillingene.

  1. Starter serveren
  2. Åpne openserver-modulen med innstillinger i "mail"-menyen
  3. Vi fyller ut alle feltene som vist på bildet, mens vi erstatter brukernavnet, avsenderens e-post og passord fra en ekte Yandex-postkasse.

Vi lagrer innstillingene og etter at serveren er startet på nytt, får du tilgang til selve skriptet. Fra "Mine sider"-mappen åpner du "send"-mappen der det tidligere lagrede index.php-skriptet er plassert.

Så snart dette skriptet er åpnet, vil informasjon vises i et nytt nettleservindu som indikerer at skriptet er fullført.

Etter dette bør du sjekke postkassen din, hvis adresse var spesifisert i skriptet, for å se om brevet har kommet.

Hvis det ikke er der, betyr det at noe ikke er riktig konfigurert, eller brevet havnet i spam-mappen.

Alle andre innstillinger ser like ut, men i tilfelle vil tilleggsinformasjon ikke skade.

For å sette opp sending av e-post via SMTP mail ru, trenger du ganske enkelt å erstatte Yandex-parameterne med mail ru-parametere.

Og for ikke å gjenoppbygge den lokale serveren hver gang, er det best å konfigurere forskjellige openserver-profiler. Hvordan du gjør dette er vist i videoopplæringen.

I dette tilfellet vil det være nok å bare laste profilen og alle innstillingene som ble spesifisert for denne profilen vil være tilgjengelige etter omstart av serveren. Det er en veldig praktisk ting og fungerer veldig enkelt.

For hver profil (det spiller ingen rolle i det hele tatt hva den skal hete), må dens egne innstillinger gjøres, med mindre du selvfølgelig planlegger å bruke skript, cms-systemer og applikasjoner med forskjellige parametere.
Hvis ikke, kan du klare deg med standardinnstillingene.

Når det gjelder SMTP-post ru, er alt identisk her.

Yandex-data endres til mail ru-data

Sender mail via smtp google

For å sette opp sending av e-post via Google SMTP, krever det litt innsats.

For det første er det vanskeligere å opprette en profil i Google enn i andre Yandex- og mail ru-systemer
For det andre vil systemet ikke bare slippe brevet igjennom, selv om du oppgir påloggingsinformasjonen din. Til å begynne med vil hun sende et brev med all nødvendig informasjon om videre instruksjoner.

Ellers For Google er det konfigurert på nøyaktig samme måte. Bare alle data endres.

For å konfigurere sending av e-post via annen SMTP, vil alle data være omtrent like.

Hvis alt fungerte for deg og brevene nådde den spesifiserte adressaten, ble alt gjort riktig. Det ville være flott om du deler dine erfaringer i kommentarene.

For at et bestemt nettsted skal ha muligheten til å jobbe effektivt og produktivt, bør opprettelsen av den behandles så ansvarlig og forsiktig som mulig. Valget av system som skal brukes til å lage en nettbutikk fortjener spesiell oppmerksomhet. Faktum er at en kommersiell plattform som spesialiserer seg på salg av varer eller tjenester må tillate implementering av all nødvendig funksjonalitet og være enkel å bruke, både for administratorer som er involvert i vedlikehold og fylling av nettsteder, og for kunder til nettbutikker. Mange mennesker og bedrifter som står overfor spørsmålet om å velge et passende CMS for seg selv, analyserer om de skal velge Magento eller OkayCMS. La oss sammenligne funksjonene og egenskapene til disse nettstedmotorene.

Når du jobber med ditt eget nettsted, må en person eller et selskap legge ned mye innsats - bare i dette tilfellet kan du stole på positive resultater og få et virkelig effektivt verktøy. Et av de grunnleggende spørsmålene som må løses selv før man begynner å lage et nettsted, vil være hvordan man bestemmer seg for det mest passende CMS-alternativet. Deretter vil vi sammenligne to CMS: Joomla eller OkayCMS, og ta hensyn til funksjonene til hver av dem.

Å ha din egen nettside er et av de grunnleggende kravene for en effektiv og vellykket drift. Statistikk indikerer tydelig en økning i antall kjøp av ulike varer og bestillinger av tjenester via Internett. Med dette i betraktning, er de fleste kommersielle selskaper allerede klar over behovet for å ha en egen nettside. Men det faktum å ha en Internettressurs er ikke nok til å stole på effektiviteten, lønnsomheten og forventede forretningsfordeler.

Når du forbereder deg på å lage din egen nettside eller åpne en nettbutikk, må du ta hensyn til og analysere mange problemer, samt løse ulike problemer. Bare i dette tilfellet kan du stole på at prosjektet ditt vil gi positive resultater og være i stand til å oppfylle dine forventninger fullt ut. Blant de ulike spørsmålene knyttet til utviklingen av en nettbutikk, fortjener spørsmålet om valg av CMS spesiell oppmerksomhet. For å gjøre det lettere for deg å bestemme den optimale motoren for deg selv, innenfor

Når du planlegger å lage sin egen nettside for en fremtidig nettbutikk, står et ganske stort antall mennesker og til og med selskaper som spesialiserer seg på salg overfor et vanskelig og ekstremt viktig valg: hvilken av de eksisterende CMS-ene du skal velge. Hvis du tenker på hva du skal velge: PrestaShop eller OkayCMS, foreslår vi at du leser denne artikkelen, der vi vil sammenligne disse to systemene for å lage nettsteder, spesielt nettbutikker.

Siden det er forbudt å sende anonyme meldinger fra virtuelle Windows-vertsservere, bør sending av brev gjøres via en SMTP-server, som det også er mulig å bruke vårt postsystem for.

Hvordan sende e-post med PHP?

Bruke en hvilken som helst PHP-klasse som støtter autorisasjon på smtp-serveren. Du kan for eksempel bruke klassesettet PHPMailer.

Du kan også bruke vårt eksempel, som implementerer sending av brev ved hjelp av en smtp-server, som krever autorisasjon. Derfor, ikke glem å legge til de riktige tilgangsdetaljene til skriptet, for eksempel:

// Hvis du trenger å vise SMTP-sesjonsloggen, kan du fjerne kommentarer på følgende linje. // $_SERVER["debug"] = sant; funksjon MailSmtp ($reciever, $subject, $content, $headers, $debug = 0) ( $smtp_server = "smtp.site"; // SMTP-serveradresse$smtp_port = 25 ; // SMTP-serverport$smtp_user = " [e-postbeskyttet]" ; // Brukernavn for autorisasjon på SMTP-serveren$smtp_password = "pAsSwORd" ; // Passord for autorisasjon på SMTP-serveren$mail_from = " [e-postbeskyttet]" ; // Postkasse som brevet sendes fra$sock = fsockopen ($smtp_server, $smtp_port, $errno, $errstr, 30); $str = fgets ($sokk, 512); if (! $sock ) ( printf ( "Socket er ikke opprettet\n" ); exit(1 ); ) smtp_msg ($sock , "HELO " . $_SERVER [ "SERVER_NAME" ]); smtp_msg($sock, "AUTH LOGIN"); smtp_msg ($sock, base64_encode ($smtp_user)); smtp_msg ($sock, base64_encode ($smtp_password)); smtp_msg ($sock , "POST FRA:<" . $mail_from . ">" ); smtp_msg ($sock , "RCPT TIL:<" . $reciever . ">" ); smtp_msg ($sock , "DATA" ); $headers = "Emne: " . $subject . "\r\n" . $headers ; $data = $headers . "\r\n\r\n" . $content . "\r\n." ; smtp_msg ($sock , $data ); smtp_msg ($sock , "QUIT" ); fclose ($sock ); ) funksjon smtp_msg ($sock , $msg ) ( if ( ! $sock ) ( printf ("Broken socket!\n" ); exit(1 ); ) if (isset($_SERVER [ "debug" ]) && $_SERVER [ "debug" ]) ( printf ( "Send fra oss : %s
" , nl2br (htmlspecialchars ($msg )); ) fputs ($sock , " $msg \r\n" ); $str = fgets ($sock , 512 ); if (! $sock ) ( printf ( "Socket er down\n" ); exit(1); ) else ( if (isset($_SERVER [ "debug" ]) && $_SERVER [ "debug" ]) ( printf ("Fikk fra server: %s
" , nl2br (htmlspecialchars ($str )); ) $e = eksplodere (" " , $str ); $code = array_shift ($e ); $str = imploder ( " " , $e ); if ($code > 499) ( printf ( "Problemer med SMTP-samtale.

Kode %d.
Melding %s
"
, $kode , $str ); exit(1); ) ) ) ?>

Last ned et eksempel på et ferdig skript med MailSmtp()-funksjonen: smtpauth.php.sample

Du kan bruke MailSmtp()-funksjonen beskrevet ovenfor for å erstatte mail()-funksjonen direkte; vurder et eksempel på den enkleste formen i PHP:

// Meldingshoder, de definerer meldingskodingen, Fra-, Til-feltene osv.$headers = "MIME-versjon: 1.0\r\n" ; $headers .= "Innholdstype: text/html; charset=windows-1251\r\n"; $headers .= "Til: $til \r\n" ; $headers .= "Fra: Avsenderens navn " ; // mail ($to, $subject, $message, $headers); require_once "smtpauth.php" ; MailSmtp ($to, $subject, $message, $headers); ) ?>
Til hvem: Emne: Tekst: 
 
 

For at dette skjemaet skal fungere uten mail()-funksjonen, inkluderte vi filen smtpauth.php via require_once og kalte MailSmtp()-funksjonen beskrevet i den med argumenter som ligner på mail(). Samtidig kommenterte vi selve mail()-kallet i koden for å unngå feil ved utføring av skriptet.

Hvordan sende e-post med ASP.NET?

Hvis du bruker versjon 2.0, bruker du MailMessage-klassen System.Net.Mail), godt beskrevet.

Nedenfor er eksempler på bruk for C#- og VisualBasic-språkene:

Eksempel for C#-språket:

<% @Page Language="c#" %> <% @Import Namespace="System.Net.Mail" %> <% @Import Namespace="System.Net" %> <% MailMessage message = new MailMessage(); // lage en ny bokstav message.To.Add(" [e-postbeskyttet]"); // legger til mottakeradresse melding.Fra = ny e-postadresse("fra@ domain.tld", "Avsenders navn"); // spesifiserer navn og adresse til avsenderen message.Subject = "Meldingens emne"; // spesifisere emnet for brevet message.BodyEncoding = System.Text.Encoding.UTF8; // spesifiserer bokstavkodingen melding.IsBodyHtml = usann; // spesifisere bokstavformatet (true - HTML, false - ikke HTML) message.Body = "Meldingstekst"; // spesifiserer teksten (brødteksten) til brevet SmtpClient-klient = ny SmtpClient("smtp.site",25); // opprette en ny tilkobling til serveren "smtp.site" client.DeliveryMethod = SmtpDeliveryMethod.Network; // definerer metoden for å sende meldinger client.EnableSsl = false; // deaktiverer behovet for å bruke en sikker tilkobling til serveren client.UseDefaultCredentials = false; // deaktiver bruken av standard autorisasjonsdetaljer client.Credentials = new NetworkCredential("postmaster@ domain.tld", "***passord***"); // spesifisere de nødvendige detaljene (brukernavn og passord) for autorisasjon på SMTP-serveren klient.Send(melding); // sende melding %>

Last ned et eksempel på et ferdig skjema som viser bruken av denne metoden: MailForm.aspx.

Eksempel for VisualBasic-språket:

<% @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", "Sender_name") smtpMssg.To.Add (" [e-postbeskyttet]") " legger til mottakeradresse smtpMssg.Subject = "E-postemne" "angivelse av emnet for brevet smtpMssg.Body = "Meldingstekst" " angivelse av teksten (brødteksten) i brevet smtpMssg.BodyEncoding = System.Text.Encoding.UTF8 " indikasjon på bokstavkodingen smtpMssg.IsBodyHtml = usann " indikasjon på bokstavformatet (true - HTML, usant - ikke HTML) Dim SmtpMail som ny SmtpClient("smtp.site", 25) " erklæring av et nytt objekt av typen "SmtpClient" SmtpMail.DeliveryMethod = SmtpDeliveryMethod.Network "angivelse av brevleveringsmetoden SmtpMail.UseDefaultCredentials = False "deaktivering av bruk av autorisasjonslegitimasjon som standard" SmtpMail.EnableSsl = False " deaktiverer behovet for å bruke en sikker tilkobling til serveren SmtpMail.Credentials = new NetworkCredential("postmaster@ domain.tld", "***passord***") "som indikerer de nødvendige detaljene (brukernavn og passord) for autorisasjon på SMTP-serveren SmtpMail.Send(smtpMssg) " sender en melding %>

Det er også en utdatert (og utdatert) SmtpMail-klasse (som bruker navneområdet System.Web.Mail). Nedenfor er et eksempel på bruken for VisualBasic-språket:

<% @Page Language="VB" Debug="true" %> <% @Import Namespace="System.Web" %> <% @Import Namespace="System.Web.Mail" %> <% Dim smtpMssg = new MailMessage " erklæring om et nytt objekt av typen "MailMessage" smtpMssg.From = "Avsendernavn domain.tld>" "Angivelse av navn og adresse til avsender smtpMssg.To = "admin@ domain.tld" " angivelse av mottakerens adresse smtpMssg.BodyFormat = MailFormat.Text " indikasjon på bokstavformatet smtpMssg.BodyEncoding = Encoding.UTF8 "som indikerer bokstavkodingen smtpMssg.Subject = "E-postemne" "angivelse av emnet for brevet smtpMssg.Body = "Meldingstekst" " angivelse av teksten i brevet smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate",1) "som indikerer behovet for SMTP-autorisasjon på serveren smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "admin@ domain.tld") "brukernavn for autorisasjon smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "***passord***") "passord for autorisasjon SmtpMail.SmtpServer = "smtp.site" " som spesifiserer SMTP-serveradressen SmtpMail.Send(smtpMssg) " sender en melding %>

Hvordan sende e-post med ASP?

Vær oppmerksom på at når du bruker vår smtp-server, kreves autorisasjon, så ikke glem å legge til de riktige tilgangsdetaljene til skriptet, for eksempel:

<% 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") = "passord" .Oppdater End With Set cdoMessage = CreateObject("CDO.Message") Med cdoMessage Set .Configuration = iConfig .From = "Test bruker domain.tld>" .To = "Bruker " .Subject = "Hei, bruker" .TextBody = "Jeg skriver denne meldingen fra ASP-skript." .Send End With Set cdoMessage = Ingenting satt iConfig = Ingenting %>

Noen CMS har allerede innebygde verktøy for å sende korrespondanse eller tilsvarende moduler; la oss se på de mest populære.

Wordpress

For dette CMS er det en spesiell modul "WP Mail SMTP", et eksempel på konfigurasjonen er beskrevet på modulsiden.

Vær oppmerksom på illustrasjonen i eksemplet; i vårt postsystem er det nødvendig å bruke port 25 og SSL-kryptering er ikke nødvendig.

Joomla

I administrasjonspanelet går du til delen "Generelle innstillinger", velg fanen "Server". I "Mail"-feltet må du velge sendemetoden som "SMTP-server", i feltene "SMTP-serveradresse" og "SMTP-pålogging" og "SMTP-passord" spesifiser de riktige detaljene for e-postsystemet, for eksempel: smtp.site, boks@ditt_domene og tilsvarende passord.

Drupal

Dette CMS har også sin egen modul for arbeid med en SMTP-server, basert på PHPMailer. Du kan laste ned denne modulen på siden på CMS Drupal-nettstedet; en beskrivelse av hvordan du installerer modulen er tilgjengelig i arkivet med den.

NetCat

Dette CMS-systemet har ikke innebygde funksjoner for arbeid med en SMTP-server. For å sende e-post ved hjelp av nettstedsskript, kan vi tilby å bruke løsningen vår; for å koble til den må du utføre følgende trinn:

  • Last ned et arkiv med nødvendige filer fra nettstedet vårt ( send_auth_mail.php Og mail.inc.php) og pakk den ut på datamaskinen;
  • Rediger fil send_auth_mail.php fra arkivet, og angir tilkoblingsdetaljene til ønsket SMTP-server:

    • $mail_smtpServer = "smtp.site"; (SMTP-serveradresse)
    • $mail_port = "25" ; (tilkoblingsport)
    • $mail_brukernavn = "[e-postbeskyttet]" ; (brukernavn for autorisasjon på SMTP-serveren)
    • $mail_password = "Passord"; (passord for autorisasjon på SMTP-serveren)
  • Lag en sikkerhetskopi av filen domain.tld/www/netcat/admin/mail.inc.php;
  • laste ned filer send_auth_mail.php Og mail.inc.php til det virtuelle nettstedet i katalogen domain.tld/www/netcat/admin/

domain.tld bør erstattes med ditt domenenavn.

Den foreslåtte løsningen fungerer med alle NetCat-moduler som bruker standardfunksjonene til dette CMS for å sende e-post.




Topp