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, for å sende e-post vil vi bruke PHPMailer-biblioteket, 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 den 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 tilstrekkelig 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["varsel" ])) (
$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(); //Initialiser klassen
$fra = " [e-postbeskyttet]"
; //E-postadresse som brevet er sendt fra
$to = " [e-postbeskyttet]"
; //Adressen til mottakeren
$mail -> isSMTP(); //Bruk SMTP-protokollen
$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 meningsfull 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 SMTP-tilkoblingsproblem.
Men, siden nå eiendommen SMTPDebug(pos. 50) tildeles 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 sending av e-post;
- 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 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å skriptet 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.
- Starter serveren
- Åpne openserver-modulen med innstillinger i "mail"-menyen
- 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, adressen til den 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 nettstedsmotorene.
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 problemstillingene 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." ; ; ; _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 å direkte erstatte mail()-funksjonen, tenk på 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); ) ?>
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å bruken 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(); // opprette 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); // oppretter 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 "angivelse av 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" "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, det er 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 installasjonen av 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 den til, må du utføre følgende trinn:
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.