Smtp авторизация коды. Электрондық хаттарды жіберу (SMTP және PHP поштасы). ASP көмегімен электрондық поштаны қалай жіберуге болады
Виртуалды Windows хостинг серверлерінен анонимді хабарламаларды жіберуге тыйым салынғандықтан, хаттарды жіберу SMTP сервері арқылы жүзеге асырылуы керек, ол үшін біздің пошта жүйемізді де пайдалануға болады.
PHP арқылы электрондық поштаны қалай жіберуге болады?
smtp серверінде авторизацияны қолдайтын кез келген РНР класын пайдалану. Мысалы, PHPMailer класс жиынын пайдалануға болады.
Сондай-ақ авторизацияны қажет ететін smtp сервері арқылы хаттарды жіберуді жүзеге асыратын біздің мысалды пайдалануға болады. Сондықтан сценарийге тиісті рұқсат мәліметтерін қосуды ұмытпаңыз, мысалы:
// SMTP сеансы журналын көрсету қажет болса, келесі жолға түсініктемені жоюға болады. // $_SERVER["debug"] = шын; MailSmtp функциясы ($reciever, $тақырып, $мазмұн, $тақырыптар, $debug = 0) ( $smtp_server = "smtp.site"; // SMTP сервер мекенжайы$smtp_port = 25 ; // SMTP серверінің порты$smtp_user = " [электрондық пошта қорғалған]" ; // SMTP серверіндегі авторизацияға арналған пайдаланушы аты$smtp_password = "pAsSwORd" ; // SMTP серверіндегі авторизацияға арналған құпия сөз$mail_from = " [электрондық пошта қорғалған]" ; // Хат жіберілетін пошта жәшігі$sock = fsockopen ($smtp_server, $smtp_port, $errno, $errstr, 30); $str = fgets ($sok, 512); if (! $sock ) ( printf ( "Розета жасалмады\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 , "ПОШТА КІМНЕН:<" . $mail_from . ">" ); smtp_msg ($sock , "RCPT TO:<" . $reciever . ">" ); smtp_msg ($sock , "DATA" ); $headers = "Тақырып: " . $тақырып. "\r\n" . $тақырыптар; $деректер = $тақырыптар. "\r\n\r\n" $content . "\r\n." ; smtp_msg ($sock, $data ); smtp_msg ($sock, "QUIT" ); fclose ($sock ); ) smtp_msg функциясы ($sock, $msg ) ( егер ( ! $sock ) ( printf ("Сынған ұяшық!\n" ); exit(1 ); ) if (isset($_SERVER [ "debug" ]) && $_SERVER [ "debug" ]) ( printf ( "Бізден жіберу" : %s" , nl2br (htmlspecialchars ($msg )); ) fputs ($sock , " $msg \r\n" ); $str = fgets ($sock , 512 ); if (! $sock ) ( printf ( "Socket is" down\n" ); exit(1); ) else ( if (isset($_SERVER [ "debug" ]) && $_SERVER [ "debug" ]) ( printf ("Серверден алынды: %s"
" , nl2br (htmlspecialchars ($str )); ) $e = жарылу (" " , $str ); $код = массив_жылжыту ($e ); $str = имплоде ( " " , $e ); егер ($код > 499 ) ( printf ( «SMTP сөйлесуіндегі мәселелер.
Код %d.
%s хабары
" , $code , $str ); шығу(1); ))) ?>
MailSmtp() функциясы бар дайын сценарийдің мысалын жүктеп алыңыз: smtpauth.php.sample
mail() функциясын тікелей ауыстыру үшін жоғарыда сипатталған MailSmtp() функциясын пайдалануға болады; PHP тіліндегі ең қарапайым пішіннің мысалын қарастырыңыз:
// Хабарлама тақырыптары, олар хабарлама кодтауын, Кімнен, Кімге өрістерін және т.б. анықтайды.$headers = "MIME-нұсқасы: 1.0\r\n" ; $тақырыптар.= "Мазмұн түрі: мәтін/html; charset=windows-1251\r\n"; $headers .= "Кімге: $ - \r\n" ; $тақырыптар.= «Кімнен: Жіберушінің атыҮшін бұл пішін mail() функциясынсыз жұмыс істедік, біз smtpauth.php файлын require_once арқылы қостық және онда сипатталған MailSmtp() функциясын шақырдық, аргументтері mail() сияқты. Сонымен бірге, сценарийді орындау кезінде қателерді болдырмау үшін mail() қоңырауының өзін кодта түсіндірдік.
ASP.NET арқылы электрондық поштаны қалай жіберуге болады?
Егер сіз 2.0 нұсқасын пайдалансаңыз, MailMessage сыныбын пайдаланыңыз System.Net.Mail), жақсы сипатталған.
Төменде оны C# және VisualBasic тілдері үшін пайдалану мысалдары берілген:
C# тіліне мысал:
<% @Page Language="c#" %> <% @Import Namespace="System.Net.Mail" %> <% @Import Namespace="System.Net" %> <% MailMessage message = new MailMessage(); // жаңа әріп құрухабар.Қосу(" [электрондық пошта қорғалған]"); // алушының мекенжайын қосу message.From = жаңа пошта мекенжайы("from@ domain.tld", "Жіберушінің аты"); // жіберушінің аты мен мекенжайын көрсету message.Subject = "Хабар тақырыбы"; // хаттың тақырыбын көрсету message.BodyEncoding = System.Text.Encoding.UTF8; // әріпті кодтауды анықтау message.IsBodyHtml = жалған; // әріп пішімін көрсету (true - HTML, false - HTML емес) message.Body = "Хабар мәтіні"; // әріптің мәтінін (негізін) көрсету SmtpClient клиенті = жаңа SmtpClient("smtp.site",25); // "smtp.site" серверіне жаңа қосылым жасау client.DeliveryMethod = SmtpDeliveryMethod.Network; // хабарламаларды жіберу әдісін анықтайды client.EnableSsl = false; // серверге қауіпсіз қосылымды пайдалану қажеттілігін өшіреді client.UseDefaultCredentials = жалған; // әдепкі авторизация мәліметтерін пайдалануды өшіру client.Credentials = new NetworkCredential("postmaster@" domain.tld", "***пароль***"); // SMTP серверінде авторизациялау үшін қажетті мәліметтерді (пайдаланушы аты мен құпия сөз) көрсету client.Send(хабарлама); // хат жіберу %>Пайдалануды көрсететін толтырылған пішіннің мысалын жүктеп алыңыз бұл әдіс: MailForm.aspx.
VisualBasic тіліне мысал:
<% @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", "Жіберуші_аты") smtpMssg.To.Add (" [электрондық пошта қорғалған]") " алушының мекенжайын қосу smtpMssg.Subject = "Электрондық пошта тақырыбы" «хаттың тақырыбын көрсету smtpMssg.Body = "Хабар мәтіні" « хаттың мәтінін (негізін) көрсету smtpMssg.BodyEncoding = System.Text.Encoding.UTF8 " әріпті кодтауды көрсету smtpMssg.IsBodyHtml = жалған " әріп пішімін көрсету (true - HTML, false - HTML емес) SmtpMail жаңа SmtpClient ретінде күңгірттендіріңіз («smtp.site», 25) "SmtpClient" типті жаңа нысанды жариялау SmtpMail.DeliveryMethod = SmtpDeliveryMethod.Network «хатты жеткізу әдісін көрсету SmtpMail.UseDefaultCredentials = Өтірік "әдепкі бойынша авторизация тіркелгі деректерін пайдалануды өшіру" SmtpMail.EnableSsl = False " серверге қауіпсіз қосылымды пайдалану қажеттілігін өшіреді SmtpMail.Credentials = жаңа NetworkCredential("postmaster@" domain.tld", "***пароль***") "SMTP серверінде авторизациялау үшін қажетті мәліметтерді (пайдаланушы аты мен құпия сөз) көрсете отырып SmtpMail.Send(smtpMssg) "хабарлама жіберу %>Сондай-ақ ескірген (және ескірген) SmtpMail сыныбы бар (аттар кеңістігін пайдалану). System.Web.Mail). Төменде оның VisualBasic тілі үшін қолданылуының мысалы келтірілген:
<% @Page Language="VB" Debug="true" %> <% @Import Namespace="System.Web" %> <% @Import Namespace="System.Web.Mail" %> <% Dim smtpMssg = new MailMessage " MailMessage" түріндегі жаңа нысанды жариялау smtpMssg.From = "Жіберуші_атыASP көмегімен электрондық поштаны қалай жіберуге болады?
Біздің smtp серверін пайдаланған кезде авторизация қажет екенін ескеріңіз, сондықтан сценарийге тиісті рұқсат мәліметтерін қосуды ұмытпаңыз, мысалы:
<% 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") = "password" .Соңын жаңарту cdoMessage жиынымен = CreateObject("CDO.Message") cdoMessage жинағымен .Configuration = iConfig .From = "Пайдаланушыны сынауКейбір CMS-де хат алмасу немесе сәйкес модульдерді жіберуге арналған кірістірілген құралдар бар, олардың ең танымалдарын қарастырайық.
Wordpress
Бұл CMS үшін арнайы «WP Mail SMTP» модулі бар, оның конфигурациясының мысалы модуль бетінде сипатталған.
Мысалдағы суретке назар аударыңыз, біздің пошта жүйемізде 25 портты пайдалану қажет және SSL шифрлау қажет емес.
Joomla
Басқару тақтасында «Жалпы параметрлер» бөліміне өтіп, «Сервер» қойындысын таңдаңыз. «Пошта» өрісінде «SMTP сервері» ретінде жіберу әдісін таңдау керек, «SMTP серверінің мекенжайы» және «SMTP логин» және «SMTP құпия сөзі» өрістерінде пошта жүйесінің сәйкес мәліметтерін көрсетіңіз, мысалы: smtp.site, box@your_domainжәне сәйкес құпия сөз.
Drupal
Бұл CMS-де SMTP серверімен жұмыс істеуге арналған өзінің модулі бар PHPMailer.Сіз бұл модульді CMS Drupal веб-сайтындағы өз бетінде жүктей аласыз; модульді орнату сипаттамасы онымен бірге мұрағатта бар.
NetCat
Бұл CMS жүйесінде SMTP серверімен жұмыс істеуге арналған кірістірілген функциялар жоқ. Сайт сценарийлерін пайдаланып хат жіберу үшін біз шешімімізді пайдалануды ұсына аламыз; оны қосу үшін келесі қадамдарды орындау қажет:
- Біздің веб-сайттан қажетті файлдары бар мұрағатты жүктеп алыңыз ( send_auth_mail.phpЖәне mail.inc.php) және оны компьютерде орауыштан шығарыңыз;
Файлды өңдеу send_auth_mail.phpмұрағаттан қажетті SMTP серверіне қосылу мәліметтерін көрсете отырып:
- $mail_smtpServer = "smtp.site"; (SMTP серверінің мекенжайы)
- $mail_port = "25" ; (қосылу порты)
- $mail_username = "[электрондық пошта қорғалған]" ; (SMTP серверінде авторизациялау үшін пайдаланушы аты)
- $mail_password = «Пароль»; (SMTP серверіндегі авторизацияның құпия сөзі)
- Файлдың сақтық көшірмесін жасаңыз domain.tld/www/netcat/admin/mail.inc.php;
- файлдарды жүктеп алу send_auth_mail.phpЖәне mail.inc.phpкаталогтағы виртуалды сайтқа domain.tld/www/netcat/admin/
domain.tldдомендік атыңызбен ауыстырылуы керек.
Ұсынылған шешім поштаны жіберу үшін осы CMS стандартты функцияларын пайдаланатын барлық NetCat модульдерімен жұмыс істейді.
Ұзақ уақыт бойы пайдаланушыларға хаттарды PHP-дегі mail() функциясы арқылы емес, SMTP пошта серверлері арқылы жіберу шешімін іздедім. Интернетте әртүрлі ақпарат көп емес, ал бар нәрсе дұрыс жұмыс істемейді немесе мүлдем жұмыс істемейді. Сондықтан мен бәрін біріктіріп, сайттарда ұсынылған дайын кодтардың негізінде өзімнің кодымды жаздым.
Неліктен пошта арқылы емес, SMTP арқылы жіберу керек()
Менің жауабым өте қарапайым - біраз уақыт бойы вирустар менің серверім арқылы тонналап хаттар жіберді, бұл менің IP мекенжайымды көптеген пошташылар, атап айтқанда gmail.com арқылы БАН-ға әкелді және осыған байланысты пайдаланушылар хаттар ала алады, сондықтан мен балама іздеу керек болды, мен оны таптым - бұл SMTP
Сізді неге менің сценарийім ашық жерде жатқан басқаларға қарағанда жақсырақ деп қызықтыруы мүмкін?! Мен жауап беремін
- Ол Yandex, Rambler, Mail қызметтерімен жұмыс істейді (gmail жеңе алмады)
- Кодты тазалау. Оны конфигурациялау үшін бірнеше жолды өзгерту жеткілікті
- Электрондық хаттарды HTML пішімінде жібереді
Интернеттен еш жерден таппаған сценарийімнің артықшылықтары осында, бірақ әрқайсысынан өзіме қажеттінің бәрін алдым. Сонымен, кодты қарастырайық.
Функция smtpmail($mail_to, $subject, $message, $service="yandex") ( $config["smtp_charset"] = "windows-1251"; //хабарлама кодтау. (немесе UTF-8, т.б.) $config [ "smtp_from"] = "mashintop.ru"; //Сіздің атыңыз - немесе сіздің сайтыңыздың атауы. "Кімнен" өрісінде оқығанда көрсетіледі $config["smtp_debug"] = false; //Егер қаласаңыз қате туралы хабарларды көру үшін false орнына шын мәнін көрсетіңіз $config["smtp_port"] = "25"; // Жұмыс порты. Егер сенімді болмасаңыз өзгертпеңіз. if($service=="yandex") ( $config[ "smtp_searcher"] = "yandex. ru"; $config["smtp_email"] = " [электрондық пошта қорғалған]"; $config["smtp_username"] = "mashintop"; //Пошта жәшігінің атауын өзгертіңіз. $config["smtp_host"] = "smtp.yandex.ru"; //хат жіберу сервері $config[" smtp_password "] = "moi_parol"; //Құпия сөзді өзгерту ) elseif($service=="rambler") ( $config["smtp_searcher"] = "rambler.ru"; $config["smtp_email"] = " [электрондық пошта қорғалған]"; $config["smtp_username"] = "mashintop"; //Пошта жәшігінің атын өзгертіңіз. $config["smtp_host"] = "smtp.rambler.ru"; //хат жіберу сервері $config[" smtp_password "] = "moi_parol"; //Құпия сөзді өзгерту ) elseif($service=="mail") ( $config["smtp_searcher"] = "mail.ru"; $config["smtp_email"] = " [электрондық пошта қорғалған]"; $config["smtp_username"] = "mashintop"; //Пошта жәшігінің атын өзгертіңіз. $config["smtp_host"] = "smtp.mail.ru"; //хат жіберу сервері $config[" smtp_password "] = "moi_parol"; //Құпия сөзді өзгерту ) elseif($service=="gmail") ( $config["smtp_searcher"] = "gmail.com"; $config["smtp_email"] = " [электрондық пошта қорғалған]"; $config["smtp_username"] = "alexeybertram"; //Пошта жәшігінің атын өзгертіңіз. $config["smtp_host"] = "smtp.gmail.com"; //хат жіберу сервері $config[" smtp_password "] = "moi_parol"; //Құпия сөзді өзгерту ) $header="Күні: ".date("D, j M Y G:i:s")." +0700rn"; $header.="Кімнен: =?windows-1251?Q?".str_replace("+","_",str_replace("%","=",urlencode("".$config[" smtp_from"]."")))."?=<".$config["smtp_email"].">rn"; $header.="X-Mailer: Жарқанат! (v3.99.3) Professionalrn"; $header.="Жауап беру: =?windows-1251?Q?".str_replace("+","_",str_replace("%","=",urlencode(" ".$config["smtp_from"]."")))."?=<".$config["smtp_email"].">rn"; $header.="X- приоритет: 3 (қалыпты)rn"; $header.="Хабар идентификаторы:<172562218.".date("YmjHis")."@".$config["smtp_searcher"].">rn"; $header.="Кімге: =?windows-1251?Q?".str_replace("+","_",str_replace("%","=",urlencode("")))."? =<$mail_to>rn"; $header.="Тақырып: =?windows-1251?Q?".str_replace("+","_",str_replace("%","=",urlencode("".$subject."" )))."?=rn"; $header.="MIME-нұсқасы: 1.0rn"; $header.="Мазмұн түрі: мәтін/html; charset=windows-1251rn"; $header.="Мазмұнды тасымалдау-кодтау: 8bitrn"; $smtp_conn = fsockopen("".$config["smtp_host"]."", $config["smtp_port"],$errno , $errstr, 10); if(!$smtp_conn) ("серверлерден қосылым сәтсіз аяқталды" басып шығару; fclose($smtp_conn); exit;) $data = get_data($smtp_conn); fputs($smtp_conn,"EHLO ". $ config["smtp_searcher"]."rn"); $code = substr(get_data($smtp_conn),0,3000); if($code != 250) ("EHLO сәлем қатесін" басып шығару; fclose($smtp_conn) ; exit; ) fputs($smtp_conn,"AUTH LOGINrn"); $code = substr(get_data($smtp_conn),0,3000); if($code != 334) ("сервер авторизацияны бастауға рұқсат бермеді" басып шығару; fclose ($) smtp_conn); exit;) fputs($smtp_conn,base64_encode("".$config["smtp_username"]."")."rn"); $code = substr(get_data($smtp_conn),0,3000); егер ($code != 334) ("осы пайдаланушыға қатынасу қатесі" басып шығарыңыз; fclose($smtp_conn); exit;) fputs($smtp_conn,base64_encode("".$config["smtp_password"].""). "rn" ); $code = substr(get_data($smtp_conn),0,3000); if($code != 235) («қате құпия сөзді» басып шығару; fclose($smtp_conn); exit;) fputs($smtp_conn,"POSTA FROM:".$config["smtp_email"]."rn"); $code = substr(get_data($smtp_conn),0,3000); if($code != 250) ("сервер MAIL FROM командасынан бас тартты" басып шығару; fclose($smtp_conn); exit;) fputs($smtp_conn,"RCPT TO:".$mail_to."rn"); $code = substr(get_data($smtp_conn),0,3000); if($code != 250 ЖӘНЕ $code != 251) («Сервер RCPT TO пәрменін қабылдамады» басып шығару; fclose($smtp_conn); exit;) fputs($smtp_conn, «DATArn»); $code = substr(get_data($smtp_conn),0,3000); if($code != 354) ("сервер ДЕРЕКТЕРДІ қабылдамады" басып шығару; fclose($smtp_conn); exit;) fputs($smtp_conn,$header."rn".$message."rn.rn"); $code = substr(get_data($smtp_conn),0,3000); if($code != 250) ("хат жіберу қатесін" басып шығару; fclose($smtp_conn); exit;) fputs($smtp_conn,"QUITrn"); fclose($smtp_conn); ) функциясы get_data($smtp_conn) ( $data=""; while($str = fgets($smtp_conn,515)) ( $data .= $str; if(substr($str,3,1) == " " ) (үзіліс; ) ) қайтару $деректер; ) $text_email = "
Сіз жаңа ғана mashintop.ru сайтында хабарландыру қостыңыз. Сіз оны мына жерден көре аласызСіздің кілтіңіз: ".$key."
Осы кілттің көмегімен сіз жарнамаңызды басқара аласыз.
"; $text_email .= " "; smtpmail(" [электрондық пошта қорғалған]", "Mashintop.ru сайтындағы жарнаманың кілті", $text_email, "yandex"); //Yandex smtpmail(" [электрондық пошта қорғалған]", "Mashintop.ru сайтындағы жарнаманың кілті", $text_email, "mail"); // smtpmail(" электрондық поштасын пайдаланыңыз. [электрондық пошта қорғалған]", "Mashintop.ru сайтындағы жарнаманың кілті", $text_email, "rambler"); //rambler smtpmail(" [электрондық пошта қорғалған]", "Mashintop.ru сайтындағы жарнаманың кілті", $text_email, "gmail"); // бірақ gmail жұмыс істемейді :(
Барлығы, дайын сценарий сіздің қолыңызда, оны көшіріп алыңыз, $config массивінің мәндерін өзгертіңіз және бәрі жақсы жұмыс істейді.
Енді мен назар аударғым келетін кейбір элементтерді қарастырайық.
Мысалы, Google-ге SMTP арқылы жіберуге тырысқанда біз алатын қате. Бастапқыда біз бұл қате мәтінін көреміз:
Нақтырақ нәрсені көру үшін кодты сәл өзгертейік
Fputs($smtp_conn,"AUTH LOGINrn"); $code = substr(get_data($smtp_conn),0,3000); echo $code; if($code != 334) («сервер авторизацияны бастауға рұқсат бермеді» басып шығару; fclose($smtp_conn); exit;)
Соңында біз өте нақты қатені аламыз
530 5.7.0 Алдымен STARTTLS пәрменін шығару керек. x4sm16408296lbn.2 - gsmtp
Мен бұл нені білдіретінін білмеймін, бірақ оның қауіпсіз, қорғалмаған қосылымға қатысы бар деп ойлаймын. Мен одан қалай арылуға болатынын әлі білмеймін, сондықтан Gmail қазіргі уақытта жеңілмеген.
2019-08-05
Сәлеметсіз бе, құрметті қонақ!
Блогты жаңартуды кешіктіргенім үшін кешіріңіз. Бірақ бұл үшін толық түсінікті түсініктеме бар. Өйткені, бұл жаз болды, саяжай, қонақтар, орман, су және тағы басқалар, бұл маған веб-сайт құру мәселелерін шешуге мүмкіндік бермеді. Бірақ қазір мен аздап босадым, қонақтар кетті, енді мен бұған міндетті түрде назар аудара аламын деп ойлаймын.
Сонымен, соңғы мақалада біз доменнің поштасын пошта қызметтерінің біріне қостық, енді сайттан электрондық поштаны қалай жіберуге болатынын көрейік. Сонымен қатар, біздің хаттарымыз СПАМ-ға түспейді, бірақ біздің алушыларға сенімді түрде, жоғары ықтималдықпен жеткізіледі.
Жалпы, РНР тілінде хаттарды жіберуге арналған кірістірілген mail() функциясы бар. Бірақ айта кету керек, бұл әдістің қарапайымдылығына қарамастан (бұл жағдайда хаттарды жіберу үшін белгілі бір параметрлері бар кодтың бір жолын көрсету жеткілікті), бұл опцияны пайдалану СПАМ мәселесімен байланысты айтарлықтай кемшілікке ие. .
Мәселе мынада, алушы жағындағы пошта серверлерінің СПАМ-ға қарсы сүзгілері mail() функциясы арқылы жіберілген хаттарды шынымен қолдамайды. Ал көп жағдайда мұндай хабарламалар адресатқа жеткенше сүзіледі немесе тіпті жойылады.
Мұндай жағдайларды мүмкіндігінше жою үшін әдетте басқа опция қолданылады, онда хаттар үшінші тарап пошта қызметі жасағандай жіберіледі.
Бұл әдіс авторизациясы бар SMTP арқылы поштаны жіберу деп аталады. Оны біз бүгін кері байланыс формасын жіберу мысалы арқылы қарастырамыз. Сонымен қатар, бұл үшін біз SMTP арқылы хаттарды жіберуді оңай ұйымдастыруға мүмкіндік беретін өте танымал және танымал PHPMailer кітапханасын қолданамыз.
- Біз кері байланыс хаттарын қалай жібереміз
- Кері байланыс формасын құру
- PHPMailer кітапханасын орнату
- Біз SMTP арқылы хат жіберуге арналған сценарий жасаймыз
- Электрондық пошта жіберу тексерілуде
- Сайттың бастапқы файлдары
Біз кері байланыс хаттарын қалай жібереміз
Кері байланыс хаттарын жіберудің практикалық жұмысын бастамас бұрын, алдымен мұны қалай жасайтынымызды шешейік.
Кері байланыс нысаны пайдаланушыға өз хабарламасын жеткізу үшін сайт әкімшісімен байланысуға мүмкіндік беру үшін жасалған. Әдетте, бұл пішін бірнеше өрістерден және «Жіберу» түймешігінен тұрады.
Негізінде, электрондық поштаны жіберу үшін пайдаланушы және хабарламаның мазмұны туралы жеткілікті ақпаратты беретін бірнеше өрістерді ғана пайдалану жеткілікті, мысалы:
- «Аты» – хабарлама жіберушінің атын енгізу;
- «Электрондық пошта» - жіберушінің электрондық пошта мекенжайы үшін;
- «Хабар тақырыбы»;
- «Хабар мәтіні».
Басқаларды қосуға болады. Мысалы, телефон нөмірі, егер бұл шынымен қажет болса.
Біздің жағдайда мұндай хаттар сайт әкімшісінің мекенжайына біздің домен қосылған пошта қызметіне авторизациясы бар нақты пошта жәшігінен жіберіледі.
Алдыңғы мақалада біз домендік поштаның Yandex.Mail қызметіне қосылуын тексеруге назар аударғандықтан, біз осы опция үшін поштаны жібереміз. Бұл маңызды емес болса да. Төменде сіз өзгертілген кезде Mail.ru пошта сервері арқылы электрондық поштаны жіберуге мүмкіндік беретін опцияларды көресіз.
Хаттар жіберілетін нақты пошта жәшігі ретінде біз жаңадан құрылған домендік пошта пайдаланушысының тіркелгісін пайдаланамыз, мысалы мекенжайы бар [электрондық пошта қорғалған]. Ал біз бұл хаттарды әкімшінің пошта жәшігіне жібереміз [электрондық пошта қорғалған], біз оны алдыңғы мақалада жасағанбыз.
Осылайша, кері байланыс формасынан хатты жіберуші пошта жәшігі болады [электрондық пошта қорғалған]., және алушы - [электрондық пошта қорғалған]. Бұл жағдайда хабарламаны мазмұнымен бірге жіберген пайдаланушы туралы барлық ақпарат жіберілген хаттың мәтінінде жіберіледі.
Кері байланыс формасын құру
Біз хаттарды жіберу тәртібін шешкеннен кейін, біз мұны жасайтын кері байланыс формасын жасаймыз.
Төменде осы пішіннің HTML коды берілген, оны біз «Контактілер» бетіне орналастырамыз (мақалалар каталогындағы kontakty.php файлы).