телевизори. Конзоли. Проектори и аксесоари. Технологии. Цифрова телевизия

Изпращане на поща чрез SMTP в PHP. Изпращане на писма (SMTP срещу поща PHP) Php изпращане на поща чрез smtp

За да може определен уебсайт да работи ефективно и продуктивно, към неговото създаване трябва да се подходи възможно най-отговорно и внимателно. Изборът на система, която ще се използва за създаване на онлайн магазин, заслужава специално внимание. Факт е, че търговската платформа, специализирана в продажбата на стоки или услуги, трябва да позволява внедряването на цялата необходима функционалност и да бъде лесна за използване, както от администратори, ангажирани с поддръжката и попълването на сайтове, така и от клиенти на онлайн магазини. Много хора и компании, които са изправени пред въпроса за избор на подходяща CMS за себе си, анализират дали да изберат Magento или OkayCMS. Нека сравним функциите и възможностите на тези двигатели на уебсайтове.

Когато работите върху собствения си уебсайт, човек или компания ще трябва да положат много усилия - само в този случай можете да разчитате на положителни резултати и наистина да получите ефективен инструмент. Един от основните въпроси, които трябва да бъдат решени още преди да започнете да създавате уебсайт, е как да изберете най-подходящата CMS опция. След това ще сравним две CMS: Joomla или OkayCMS и ще обърнем внимание на характеристиките на всяка от тях.

Наличието на собствен уебсайт е едно от основните изисквания за ефективен, успешно работещ бизнес. Статистиката ясно показва ръст в броя на покупките на различни стоки и поръчките на услуги през интернет. Като се има предвид това, повечето търговски дружества вече са наясно с необходимостта от собствен уебсайт. Въпреки това, самият факт на наличие на интернет ресурс не е достатъчен, за да се разчита на неговата ефективност, доходност и очаквани бизнес ползи.

Когато се подготвяте да създадете свой собствен уебсайт или да отворите онлайн магазин, трябва да вземете предвид и анализирате много въпроси, както и да разрешите различни проблеми. Само в този случай можете да разчитате, че вашият проект ще донесе положителни резултати и ще може напълно да отговори на вашите очаквания. Сред различните въпроси, свързани с разработването на онлайн магазин, въпросът за избора на CMS заслужава специално внимание. За да ви е по-лесно да изберете оптималния двигател за себе си, в рамките на

Когато планират да създадат собствен уебсайт за бъдещ онлайн магазин, доста голям брой хора и дори фирми, специализирани в продажби, се сблъскват с трудна и изключително важен избор: коя съществуваща CMS да избера? Ако мислите какво да изберете: PrestaShop или OkayCMS, предлагаме ви да прочетете тази статия, в която ще сравним тези две системи за създаване на интернет сайтове, по-специално онлайн магазини.

Изпращането на поща чрез SMTP от локален сървър ви позволява да тествате изпращането на съобщения от сайт, разположен на локална машина, или по-просто казано, локален сървър. За това можете да използвате всеки Пощенска услуга yandex, google или mail.ru.

На първо място, SMTP (Simple Mail Transfer Protocol) е широко използван мрежов протокол, предназначен за прехвърляне електронна пощав TCP/IP мрежи. И всички популярни имейл услуги имат такива протоколи.

С появата на локалните сървъри вече нямаше нужда да избирате хостинг доставчик, за да проверите функционалността индивидуални скриптовеили cms системи, и още повече, плащайте за това. Много по-лесно е да тествате всичко на компютър и след това можете да покажете на всички какво сте „направили“.

Много от тези сървъри вече имат вградени софтуери необходимата функционалност за работа с поща, просто трябва да я конфигурирате правилно.

За да проверите функционалността на такава поща, е необходим минималният минимум:

  • Можете да използвате Openserver като локален сървър.
  • И прост скрипт, чийто шаблон можете да намерите точно по-долу.
  • Можете да използвате всеки пощенски сървър.

Изпращане на php поща чрез настройка на SMTP скрипт

Прост шаблон на скрипт, който може да бъде копиран по-долу или изтеглен от стотици подобни сайтове, трябва да бъде редактиран.

Първо, трябва да промените някои стойности в шаблона на скрипта.
да се - промени на пощенски адрескъде ще бъде изпратено имейл съобщението.
предмет - предмет на писмото
съобщение — самото съобщение или тялото на писмото.

Пример за моя скрипт:

Можете, разбира се, да разширите малко функционалността и да накарате скрипта да показва съобщение за изпращане на поща. Въпреки че всъщност SMTP сървърът прави изпращането, а скриптът само генерира съобщението.

Например можете да напишете това:

Всички заместени стойности трябва да са в кавички, в противен случай скриптът ще изведе грешка. След това можете да запишете скрипта в папката на локалния сървър.

Например: домейни/изпрати/index.phpи започнете да настройвате изпращане на поща чрез SMTP opensrerver.

Пощата ще пристигне на всеки адрес, който ще бъде посочен в скрипта вместо стойността 'да се' , но този имейл ще бъде обработен и изпратен точно от SMTP, който ще бъде посочен в настройките на openserver.

  1. Стартиране на сървъра
  2. Отворете модула openserver с настройки в менюто „поща“.
  3. Попълваме всички полета, както е показано на снимката, докато заместваме потребителското име, имейла на подателя и паролата от истинска пощенска кутия на Yandex.

Ние запазваме настройките и след като сървърът се рестартира, можете да получите достъп до самия скрипт. От папката „Моите сайтове“ отворете папката „изпращане“, в която се намира предварително запазеният скрипт index.php.

Веднага щом се осъществи достъп до този скрипт, в нов прозорец на браузъра ще се появи информация, показваща, че скриптът е завършен.

След това трябва да проверите своя Пощенска кутия, чийто адрес беше посочен в сценария, дали писмото е пристигнало.

Ако не е там, това означава, че нещо не е конфигурирано правилно или писмото е попаднало в папката за спам.

Всички други настройки изглеждат подобни, но за всеки случай Допълнителна информацияне предотвратява.

За да настроите изпращане на поща чрез SMTP mail ru, просто трябва да замените параметрите на Yandex с параметри на mail ru.

И за да не се възстановява всеки път локален сървър, най-добре е да конфигурирате различни openserver профили. Как да направите това е показано във видео урока.

В този случай ще бъде достатъчно просто да заредите профила и всички настройки, зададени за този профил, ще бъдат достъпни след рестартиране на сървъра. Това е много удобно нещо и работи много просто.

За всеки профил (няма никакво значение как ще се нарича) трябва да се направят собствени настройки, освен ако, разбира се, не планирате да използвате скриптове, cms системи и приложения с различни параметри.
Ако не, тогава можете да се справите с настройките по подразбиране.

Що се отнася до SMTP mail ru, тук всичко е идентично.

Данните на Yandex се променят на данни на mail ru

Изпращане на поща чрез smtp google

За да настроите изпращане на поща чрез Google SMTP, са необходими малко усилия.

Първо, създаването на профил в Google е по-трудно, отколкото в други системи Yandex и mail ru
Второ, системата няма просто да пропусне писмото, дори ако предоставите данните си за вход. Като начало тя ще изпрати писмо, в което ще бъде всичко необходимата информацияза допълнителни инструкции.

В противен случай За Google е конфигуриран по абсолютно същия начин. Само всички данни се променят.

За да конфигурирате изпращане на поща през друг SMTP, всички данни ще бъдат приблизително еднакви.

Ако всичко се получи за вас и писмата достигнаха до посочения адресат, тогава всичко беше направено правилно. Би било чудесно, ако споделите опита си в коментарите.

В PHP е доста популярно да се използват скриптове, които автоматизират процеса на изпращане на писма. В тази статия ще разгледаме прост скрипт, който изпраща писма до получателите чрез SMTP( Прост протокол за прехвърляне на поща ). Би било твърде лесно да се ограничим само до тази функционалност; скриптът поддържа и прикачени файлове, тоест можете да прикачите pdf, txt или doc файл към писмото си.

Настройката на скрипта е доста проста; всичко, от което се нуждаете, е потребителското име и паролата на изпращача за имейла, от който ще се изпращат писмата.

Скриптът работи с класа km_smtp_class.php, хубавото на класа е, че поддържа различни SSL и TLS протоколи, които осигуряват сигурен трансфер на данни.

Ето и самия скрипт:

"smtp.mail.ru", "SMTP_port" => "25", "SMTP_email" => " [имейл защитен]", "SMTP_pass" => "1111111", "SMTP_type" => "null"); // Имейл на получателя $Receiver = " [имейл защитен]"; // Тема на съобщението $Subject = "Изпращане на имейл от PHP"; // Текст на съобщението (в HTML) $Text = "Здравейте!
Съобщението е изпратено от скрипта МоушонУебсайт: http://site"; // Прикачен файл в писмото - адресът към файла $Attachment = ""; /* $mail = нов KM_Mailer(сървър, порт, потребител, парола, тип); */ /* Типът може да бъде: null, tls или ssl */ $mail = new KM_Mailer($SenderConfig["SMTP_server"], $SenderConfig["SMTP_port"], $SenderConfig["SMTP_email"], $SenderConfig["SMTP_pass"], $ SenderConfig[" SMTP_type"]); if($mail->isLogin) ( // Прикачване на файл if($Attachment) ($mail->addAttachment($Attachment);) // Добавяне на още получатели $mail->addRecipient( " [имейл защитен]"); $mail->addRecipient(" [имейл защитен]"); /* $mail->send(От, За, Тема, Текст, Тема = по избор) */ $SendMail = $mail->send($SenderConfig["SMTP_email"], $Receiver, $Subject, $Text ); // Изчистване на списъка с получатели $mail->clearRecipients(); $mail->clearCC(); $mail->clearBCC(); $mail->clearAttachments(); ) else ( echo "Възникна грешка, докато свързване към SMTP сървър"; ) ?>

Настройката на скрипта се основава главно на масива $SenderConfig, тук трябва да посочим SMTP: сървър, порт, потребителско име и парола за имейл. Нека опишем всеки ключ от масив:

SMTP_server - адрес на SMTP сървър (индивидуален адрес за различни имейли)

Поща на Mail.ru: smtp.mail.ru порт: 25, 587 и 465 (с SSL криптиране)

Яндекс поща: smtp.yandex.ru порт: 25, 587 465 (SSL порт)

Рамблер поща: mail.rambler.ru порт: 25, 587 465 (SSL порт)

Yahoo Mail: smtp.mail.yahoo.com SSL порт: 465

(Ако имате нужда от адрес на smtp сървъри, които не са в списъка, напишете в коментарите)

SMTP_port - Вече го описахме по-горе за всеки smtp сървър.

SMTP_email - потребителят би бил по-точен, но за яснота написах имейл, посочваме имейл адреса.

SMTP_pass - Парола за имейла, който е зададен като стойност в ключа SMTP_email


SMTP_type - NULL по подразбиране. Протоколът, по който ще се изпращат писмата. Протоколи: SSL и TLS

Можете да добавите прикачени файлове към писмо, като просто посочите пълния адрес на файла в променливата $Attachment (/var/patch/to/file/File.pdf)

Ако имате въпроси, напишете ги в коментарите по-долу.

Тъй като изпращането на анонимни съобщения от виртуални Windows хостинг сървъри е забранено, изпращането на писма трябва да се извършва чрез SMTP сървър, за който също е възможно да се използва нашата пощенска система.

Как да изпращам имейли с PHP?

Използване на всеки PHP клас, който поддържа оторизация на smtp сървъра. Например, можете да използвате набора от класове PHPMailer.

Можете също да използвате нашия пример, който прилага изпращане на писма чрез smtp сървър, който изисква оторизация. Затова не забравяйте да добавите съответните подробности за достъп към скрипта, например:

// Ако трябва да покажете регистрационния файл на SMTP сесията, можете да откоментирате следния ред. // $_SERVER["debug"] = вярно;функция MailSmtp ($reciever, $subject, $content, $headers, $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 ($sock, 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 = "Тема: ". $subject. "\r\n" . $headers; $data = $headers. "\r\n\r\n" . $content . "\r\n." ; smtp_msg ($sock , $data ); smtp_msg ($sock , "QUIT" ); fclose ($sock ); ) функция smtp_msg ($sock , $msg ) ( if ( ! $sock ) ( printf ("Счупен сокет!\n" ); exit(1 ); ) if (isset($_SERVER [ "debug" ]) && $_SERVER [ "debug" ]) ( printf ( "Изпратете от нас : %с
" , nl2br (htmlspecialchars ($msg )); ) fputs ($sock , " $msg \r\n" ); $str = fgets ($sock , 512); if (! $sock ) ( printf ( "Сокетът е надолу\n" ); exit(1); ) else ( if (isset($_SERVER [ "debug" ]) && $_SERVER [ "debug" ]) ( printf ("Взето от сървър: %s
" , nl2br (htmlspecialchars ($str )); ) $e = експлозия (" ", $str ); $code = array_shift ($e); $str = implode ( " ", $e); if ($code > 499 ) ( printf ( „Проблеми с SMTP разговор.

Код %d.
Съобщение %s
"
, $code, $str); изход (1); ) ) ) ?>

Изтеглете пример за готов скрипт с функцията MailSmtp(): smtpauth.php.sample

Можете да използвате функцията MailSmtp(), описана по-горе, за да замените директно функцията mail(); разгледайте пример за най-простата форма в PHP:

// Заглавки на съобщения, те определят кодирането на съобщението, полетата From, To и т.н.$headers = "MIME-версия: 1.0\r\n" ; $headers .= "Тип съдържание: текст/html; charset=windows-1251\r\n"; $headers .= "До: $до \r\n" ; $headers .= „От: Името на подателя " ; // поща ($to, $subject, $message, $headers); require_once "smtpauth.php" ; MailSmtp ($to, $subject, $message, $headers); ) ?>
На кого: Предмет: Текст: 
 
 

За да тази формаработи без функцията 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(); // създаване на нова буквасъобщение.Към.Добавяне(" [имейл защитен]"); // добавяне на адрес на получателсъобщение.От = нов MailAddress("от@ домейн.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 = невярно; // деактивира необходимостта от използване на защитена връзка със сървъра client.UseDefaultCredentials = невярно; // забранете използването на детайли за оторизация по подразбиране client.Credentials = new NetworkCredential("postmaster@ домейн.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@домейн.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 = False "деактивиране на използването на идентификационни данни за оторизация по подразбиране" SmtpMail.EnableSsl = False " забранява необходимостта от използване на защитена връзка със сървъра SmtpMail.Credentials = нов NetworkCredential("postmaster@ домейн.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 = "Име_на подател домейн.tld>" „Посочване на името и адреса на подателя smtpMssg.To = "admin@ домейн.tld" " посочване на адреса на получателя smtpMssg.BodyFormat = MailFormat.Text "посочване на формата на писмото smtpMssg.BodyEncoding = Encoding.UTF8 ", показващ буквеното кодиране smtpMssg.Subject = "Тема на имейл" "посочване на предмета на писмото smtpMssg.Body = "Текст на съобщението" “ посочване на текста на писмото smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate",1) ", което показва необходимостта от SMTP оторизация на сървъра smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "admin@ домейн.tld") "потребителско име за оторизация smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "***парола***") "парола за оторизация SmtpMail.SmtpServer = "smtp.site" ", указвайки адреса на SMTP сървъра SmtpMail.Send(smtpMssg) " изпращане на съобщение %>

Как да изпращате имейли чрез 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@домейн.tld" .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "парола" .Update End With Set cdoMessage = CreateObject("CDO.Message") With cdoMessage Set .Configuration = iConfig .From = „Тест потребител домейн.tld>" .To = "Потребител " .Subject = "Здравей, потребител" .TextBody = "Пиша това съобщение от ASP скрипт." .Send End With Set cdoMessage = Nothing Set iConfig = Nothing %>

Някои CMS вече имат вградени инструменти за изпращане на кореспонденция или съответните модули; нека да разгледаме най-популярните.

Wordpress

За тази CMS има специален модул „WP Mail SMTP“, пример за неговата конфигурация е описан на страницата на модула.

Обърнете внимание на илюстрацията в примера; в нашата пощенска система е необходимо да се използва порт 25 и не се изисква SSL криптиране.

Joomla

В административния панел отидете в секцията „Общи настройки“, изберете раздела „Сървър“. В полето „Поща“ трябва да изберете метода на изпращане като „SMTP сървър“, в полетата „SMTP адрес на сървъра“ и „SMTP вход“ и „SMTP парола“ посочете съответните подробности за пощенската система, например: smtp.site, кутия@вашият_домейни съответстващи парола.

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_потребителско име = "[имейл защитен]" ; (потребителско име за оторизация на SMTP сървъра)
    • $mail_password = "Парола"; (парола за авторизация на SMTP сървъра)
  • Създайте резервно копие на файла domain.tld/www/netcat/admin/mail.inc.php;
  • изтегляне на файлове send_auth_mail.phpИ mail.inc.phpкъм виртуалния сайт в директорията domain.tld/www/netcat/admin/

домейн.tldтрябва да бъде заменено с името на вашия домейн.

Предложеното решение работи с всички модули на NetCat, които използват стандартните функции на тази CMS за изпращане на поща.



Свързани публикации