Hallo. Siden grafomanien min utvikler seg, bestemte jeg meg for å legge til en annen artikkel. Artikkelen vil som alltid inneholde eksempler i C#, men en mer eller mindre dyktig VB-spesialist vil enkelt skrive om all koden under VB.NET.
La oss komme i gang, antar jeg
For å sende e-post må vi bruke tre objekter. System.Net.Mail.SmtpClient for å sende meldingen, System.Net.Mail.MailMessage for å presentere meldingen, og System.Net.NetworkCredential for å autorisere.
La oss lage en klient:
Var klient = ny SmtpClient("$Mail-Server-Address$", $Mail-Server-Port$);
Designerreferanse:
SmtpClient(strengvert, int port);
La oss lage en forekomst av MailMessage-klassen:
Var msg = new MailMessage("fra", "til");
La oss nå angi emnet og innholdet i brevet (forresten, alt kan settes i konstruktøren). Og også innlogging og passord for smtp-klienten. Deretter vil vi sende brevet ved å bruke Send-metoden til vårt klientobjekt:
Var klient = ny SmtpClient("smtp.yandex.ru"); var msg = new MailMessage("fra", "til"); msg.Subject = "Min testmelding"; msg.Body = "Hei, min venn! Tenk deg at jeg nettopp skrev et utrolig program for å sende dette meningsløse brevet til deg en milliard ganger bare med flere klikk!"; msg.SubjectEncoding = Encoding.UTF8; msg.BodyEncoding = Encoding.UTF8; // priority msg.Priority = MailPriority.High; // e-posttekst i html? msg.IsBodyHtml = usann; client.Credentials = new NetworkCredential("pålogging", "passord"); klient.Send(melding);
Det er alt. Ikke glem å fylle inn all nødvendig informasjon riktig.
Kommentarer ()
ruslang02 30
CoolHacker, kan jeg låne denne koden av deg for del 3 av nettleseren?
Coolhacker 770 ruslang02 30Takk, jeg vil bruke den til å sende lenker på e-post
som i FireFox
Programmatisk sending e-post ved hjelp av ulike tjenester
Svært ofte må du forholde deg til å sende e-post fra programkode. Du trenger ikke se langt etter eksempler.
Denne artikkelen er et hint og avslører ikke noe nytt, men før jeg skrev den, så jeg lik ut på Internett og ble ganske overrasket over at de nesten overalt tilbyr enten en løsning som ikke fungerer eller er utdatert, eller ganske enkelt er skrevet analfabet.
Det første du ikke bør gjøre basert på disse eksemplene er å bruke System.Web.Mail, som lenge har vært utdatert, og fra og med Visual Studio 2010 kan du ikke engang legge til System.Web-biblioteket uten å vite hele banen til den tilsvarende DLL-filen.
Det foreslås å bruke System.Net-biblioteket i stedet.
bruker System.Net; bruker System.Net.Mail;
Så den enkleste tingen, som også er den viktigste og mest brukte, er å sende et brev fra e-postserveren din der en SMTP-klient er konfigurert. Som du forstår, kan serveren enten være den applikasjonen kjører på, eller en ekstern server som du har rettigheter til å sende brev på uten ytterligere autorisasjon.
Eksempelkode for å sende et brev fra en lokal maskin:
Bruke e-posttjenester som Gmail, Yandex, Mail.ru, etc. alt er det samme, bare parametere med autorisasjon legges til.
SMTP-server: smtp.gmail.com
Havn: 587
bruker (MailMessage mm = new MailMessage("Navn
SMTP-server: smtp.yandex.ru
Havn: 25
bruker (MailMessage mm = new MailMessage("Navn
SMTP-server: smtp.mail.ru
Havn: 25
bruker (MailMessage mm = new MailMessage("Navn
Hvis du har Postkasse på mail.ru-tjenesten slutter på inbox.ru, list.ru eller bk.ru, deretter endres SMTP-serveradressen tilsvarende (smtp.inbox.ru, smtp.list.ru og smtp.bk.ru).
Som du kan se, for å bruke en hvilken som helst annen e-posttjeneste i programmene dine, trenger du bare å finne ut SMTP-serveradressen og -porten, samt autorisasjonsregler.
Det er også viktig å huske at nesten alle tredjeparts e-posttjenester legger begrensninger på antall e-poster som sendes i løpet av en periode.
Tags: e-post, sende brev, smtp
En av de mest populære funksjonene på nettstedet er søknads- eller bestillingsskjemaet, hvorfra dataene sendes via e-post til nettstedets eier. Som regel er slike skjemaer enkle og består av to eller tre felt for dataregistrering. Hvordan lage et slikt bestillingsskjema? Dette krever bruk av HTML-markeringsspråk og språket PHP programmering.
HTML-markeringsspråket i seg selv er enkelt; du trenger bare å finne ut hvordan og hvor du skal plassere visse tagger. Med PHP-programmeringsspråket er ting litt mer komplisert.
For en programmerer er det ikke vanskelig å lage et slikt skjema, men for en HTML-layoutdesigner kan noen handlinger virke vanskelige.
Lag et datainnsendingsskjema i html
Den første linjen vil være som følger
La oss nå sette alt sammen.
La oss nå gjøre feltene i skjemaet obligatoriske. Vi har følgende kode:
Lag en fil som godtar data fra HTML-skjemaet
Dette vil være en fil som heter send.php
I filen, på det første stadiet, må du godta data fra postmatrisen. For å gjøre dette lager vi to variabler:
$fio = $_POST["fio"];
$email = $_POST["email"];
Variablenavn i PHP innledes med et $-tegn, og et semikolon er plassert på slutten av hver linje. $_POST er en matrise som data fra skjemaet sendes inn i. I html-skjemaet er sendemetoden spesifisert som method="post". Så to variabler fra html-skjemaet er akseptert. For å beskytte nettstedet ditt, må du sende disse variablene gjennom flere filtre - php-funksjoner.
Den første funksjonen vil konvertere alle tegnene som brukeren vil prøve å legge til i skjemaet:
I dette tilfellet opprettes ikke nye variabler i php, men eksisterende brukes. Det filteret vil gjøre er å transformere tegnet "<" в "<". Также он поступить с другими символами, встречающимися в html коде.
Den andre funksjonen dekoder URL-en hvis brukeren prøver å legge den til i skjemaet.
$fio = urldecode($fio);
$email = urldecode($email);
Med den tredje funksjonen vil vi fjerne mellomrom fra begynnelsen og slutten av linjen, hvis noen:
$fio = trim($fio);
$email = trim($email);
Det er andre funksjoner som lar deg filtrere php-variabler. Bruken av dem avhenger av hvor bekymret du er for at en angriper vil prøve å legge til programkode i dette html-skjemaet for e-postinnsending.
Validering av data overført fra HTML-skjema til PHP-fil
For å sjekke om denne koden fungerer og om data overføres, kan du ganske enkelt vise den på skjermen ved hjelp av ekkofunksjonen:
ekko $fio;
ekko "
";
echo $email;
Den andre linjen her er nødvendig for å skille utdataene til php-variabler i forskjellige linjer.
Sende mottatte data fra et HTML-skjema til e-post ved hjelp av PHP
For å sende data på e-post må du bruke e-postfunksjonen i PHP.
mail("til hvilken adresse skal sendes", "emne for brevet", "Melding (brevets brødtekst)","Fra: fra hvilken e-post brevet sendes \r\n");
Du må for eksempel sende data til e-posten til nettstedets eier eller leder [e-postbeskyttet].
Emnet for brevet skal være klart, og budskapet i brevet skal inneholde det brukeren spesifiserte i HTML-skjemaet.
post(" [e-postbeskyttet]", "Søknad fra nettstedet", "Fullt navn:".$fio.". E-post: ".$email ,"Fra: [e-postbeskyttet]\r\n");
Det er nødvendig å legge til en betingelse som vil sjekke om skjemaet ble sendt med PHP til den angitte e-postadressen.
if (mail(" [e-postbeskyttet]", "Bestill fra nettstedet", "Fullt navn:".$fio.". E-post: ".$email ,"Fra: [e-postbeskyttet]\r\n"))
{
echo "melding sendt vellykket";
) annet (
}
Dermed vil programkoden til send.php-filen, som sender HTML-skjemadataene til e-post, se slik ut:
$fio = $_POST["fio"];
$email = $_POST["email"];
$fio = htmlspecialchars($fio);
$email = htmlspecialchars($email);
$fio = urldecode($fio);
$email = urldecode($email);
$fio = trim($fio);
$email = trim($email);
//ekko $fio;
//ekko "
";
//echo $email;
if (mail(" [e-postbeskyttet]", "Søknad fra nettstedet", "Fullt navn:".$fio.". E-post: ".$email ,"Fra: [e-postbeskyttet]\r\n"))
( ekko "melding sendt vellykket";
) annet (
echo "feil oppstod under sending av meldingen";
}?>
Tre linjer for å sjekke om dataene blir overført til filen blir kommentert ut. Om nødvendig kan de fjernes, siden de bare var nødvendig for feilsøking.
Vi legger HTML- og PHP-koden for innsending av skjemaet i én fil
I kommentarene til denne artikkelen stiller mange mennesker spørsmålet om hvordan man sørger for at både HTML-skjemaet og PHP-koden for å sende data til e-post er i én fil, og ikke to.
For å implementere dette arbeidet, må du plassere HTML-koden til skjemaet i send.php-filen og legge til en betingelse som vil kontrollere tilstedeværelsen av variabler i POST-matrisen (denne matrisen sendes fra skjemaet). Det vil si at hvis variablene i matrisen ikke eksisterer, må du vise brukeren skjemaet. Ellers må du motta data fra arrayet og sende det til mottakeren.
La oss se hvordan du endrer PHP-koden i send.php-filen:
//sjekk om det finnes variabler i POST-matrisen
if(!isset($_POST["fio"]) og !isset($_POST["email"]))(
?> ) annet (
//vis skjemaet
$fio = $_POST["fio"];
$email = $_POST["email"];
$fio = htmlspecialchars($fio);
$email = htmlspecialchars($email);
$fio = urldecode($fio);
$email = urldecode($email);
$fio = trim($fio);
$email = trim($email);
if (mail(" [e-postbeskyttet]", "Søknad fra nettstedet", "Fullt navn:".$fio.". E-post: ".$email ,"Fra: [e-postbeskyttet]\r\n"))(
echo "Melding sendt vellykket";
) annet (
echo "Det oppstod feil under sending av meldingen";
}
}
?>
Vi sjekker eksistensen av en variabel i POST-matrisen med isset() PHP-funksjonen. Et utropstegn før denne funksjonen i en tilstand betyr negasjon. Det vil si at hvis variabelen ikke eksisterer, må vi vise formen vår. Hvis jeg ikke hadde satt utropstegnet, ville tilstanden bokstavelig talt bety "hvis den eksisterer, så vis formen." Og dette er feil i vårt tilfelle. Naturligvis kan du gi det nytt navn til index.php. Hvis du gir nytt navn til filen, ikke glem å gi nytt navn til filnavnet på linjen