کد مجوز smtp. ارسال ایمیل (SMTP در مقابل ایمیل PHP). نحوه ارسال ایمیل با استفاده از ASP

از آنجایی که ارسال پیام های ناشناس از سرورهای میزبانی مجازی ویندوز ممنوع است، ارسال نامه ها باید از طریق سرور SMTP انجام شود که امکان استفاده از سیستم پست الکترونیکی ما نیز وجود دارد.

چگونه با استفاده از PHP ایمیل ارسال کنیم؟

استفاده از هر کلاس PHP که از مجوز در سرور smtp پشتیبانی می کند. به عنوان مثال، می توانید از مجموعه کلاس PHPMailer استفاده کنید.

شما همچنین می توانید از مثال ما استفاده کنید که ارسال نامه ها را با استفاده از سرور smtp اجرا می کند که نیاز به مجوز دارد. بنابراین، فراموش نکنید که جزئیات دسترسی مناسب را به اسکریپت اضافه کنید، به عنوان مثال:

// اگر نیاز به نمایش گزارش جلسه SMTP دارید، می‌توانید خط زیر را لغو نظر کنید. // $_SERVER["debug"] = true;تابع 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:<" . $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" ($sock, $data) (! _SERVER [ "debug" ]) && $_SERVER [ "debug" ]) ( printf ( "Send from us : %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 [ "اشکال زدایی" ]) && $_SERVER [ "اشکال زدایی" ]) ( printf ("از سرور دریافت کردم: %s
" , nl2br (htmlspecialchars ($str )); ) $e = explode (" " , $str )؛ $code = array_shift ($e )؛ $str = implode ( " " , $e )؛ if ($code > 499 ) ( printf ( "مشکلات با مکالمه SMTP.

کد %d.
پیام ها
"
, $code , $str ); خروج (1)؛ ) ) ) ?>

دانلود نمونه ای از یک اسکریپت آماده با تابع MailSmtp(): smtpauth.php.sample

می توانید از تابع MailSmtp () که در بالا توضیح داده شد برای جایگزینی مستقیم تابع mail() استفاده کنید.

// سرصفحه های پیام، کدگذاری پیام، فیلدهای From، To و غیره را مشخص می کنند.$headers = "MIME-نسخه: 1.0\r\n" ; $headers .= "نوع محتوا: text/html؛ charset=windows-1251\r\n"; $headers .= "به: $to \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 آورده شده است:

مثال برای زبان سی شارپ:

<% @Page Language="c#" %> <% @Import Namespace="System.Net.Mail" %> <% @Import Namespace="System.Net" %> <% MailMessage message = new MailMessage(); // ایجاد یک حرف جدید message.To.Add(" [ایمیل محافظت شده]"); // افزودن آدرس گیرنده message.From = آدرس پست جدید("from@ domain.tld"، "نام فرستنده")؛ // تعیین نام و آدرس فرستنده message.Subject = "موضوع پیام"; // تعیین موضوع نامه message.BodyEncoding = System.Text.Encoding.UTF8; // تعیین رمزگذاری نامه message.IsBodyHtml = false; // تعیین قالب حرف (درست - HTML، نادرست - نه HTML) message.Body = "متن پیام"; // تعیین متن (بدن) نامه SmtpClient client = new SmtpClient("smtp.site",25); // ایجاد یک اتصال جدید به سرور "smtp.site" client.DeliveryMethod = SmtpDeliveryMethod.Network; // روش ارسال پیام را تعریف می کند client.EnableSsl = false; // نیاز به استفاده از اتصال امن به سرور را غیرفعال می کند client.UseDefaultCredentials = false; // استفاده از جزئیات مجوز پیش فرض را غیرفعال کنید client.Credentials = 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"، "Sender_name") smtpMssg.To.Add (" [ایمیل محافظت شده]") "افزودن آدرس گیرنده smtpMssg.Subject = "موضوع ایمیل" «اشاره به موضوع نامه smtpMssg.Body = "متن پیام" "نشان متن (بدنه) نامه smtpMssg.BodyEncoding = System.Text.Encoding.UTF8 " نشان رمزگذاری نامه smtpMssg.IsBodyHtml = نادرست نشانگر قالب حرف (درست - HTML، نادرست - نه HTML)کم نور SmtpMail به عنوان SmtpClient جدید ("smtp.site"، 25) اعلان یک شی جدید از نوع "SmtpClient" SmtpMail.DeliveryMethod = SmtpDeliveryMethod.Network "نشان روش تحویل نامه SmtpMail.UseDefaultCredentials = نادرست "غیرفعال کردن استفاده از اعتبارنامه های مجوز به طور پیش فرض" SmtpMail.EnableSsl = نادرست " نیاز به استفاده از اتصال ایمن به سرور را غیرفعال می کند 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 = "نام_فرستنده domain.tld>" «درج نام و آدرس فرستنده smtpMssg.To = "admin@ domain.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@ domain.tld") "نام کاربری برای مجوز smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword"، "***password***") "رمز عبور برای مجوز 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@domain.tld" .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "گذرواژه" .پایان به روز رسانی با تنظیم cdoMessage = CreateObject("CDO.Message") با مجموعه cdoMessage .Configuration = iConfig .From = "کاربر را آزمایش کنید domain.tld>" .To = "کاربر " .Subject = "سلام کاربر" .TextBody = "من این پیام را از اسکریپت ASP می نویسم." .Send End With Set cdoMessage = Nothing Set iConfig = Nothing %>

برخی از CMS ها قبلاً دارای ابزارهای داخلی برای ارسال مکاتبات یا ماژول های مربوطه هستند.

وردپرس

برای این CMS یک ماژول ویژه "WP Mail SMTP" وجود دارد که نمونه ای از پیکربندی آن در صفحه ماژول توضیح داده شده است.

به تصویر مثال در سیستم پستی ما توجه کنید، استفاده از پورت 25 ضروری است و رمزگذاری SSL لازم نیست.

جوملا

در پنل مدیریت، به بخش "تنظیمات عمومی" بروید، تب "سرور" را انتخاب کنید. در قسمت "ایمیل"، باید روش ارسال را به عنوان "سرور SMTP" انتخاب کنید، در فیلدهای "آدرس سرور SMTP" و "ورود به سیستم SMTP" و "رمز عبور SMTP" جزئیات مناسب سیستم پست را مشخص کنید، به عنوان مثال: smtp.site، box@your_domainو مربوطه کلمه عبور.

دروپال

این CMS همچنین دارای ماژول خاص خود برای کار با سرور SMTP است که بر اساس آن است PHPMailer.شما می توانید این ماژول را در صفحه آن در وب سایت CMS دروپال دانلود کنید.

نت کت

این 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باید با نام دامنه شما جایگزین شود.

راه حل پیشنهادی با تمام ماژول های NetCat که از توابع استاندارد این CMS برای ارسال نامه استفاده می کنند، کار می کند.

برای مدت طولانی من به دنبال راه حلی برای ارسال نامه به کاربران نه از طریق تابع mail() در PHP، بلکه از طریق سرورهای ایمیل SMTP بودم. اطلاعات متنوع زیادی در اینترنت وجود ندارد و آنچه در آنجا وجود دارد کاملاً درست کار نمی کند یا اصلاً کار نمی کند. بنابراین، من همه چیز را کنار هم گذاشتم و بر اساس کدهای آماده ای که در سایت ها ارائه می شود، کد خودم را نوشتم.

چرا از طریق SMTP ارسال کنید و نه از طریق پست ()

پاسخ من بسیار ساده است - برای مدتی، ویروس ها هزاران نامه را از طریق سرور من ارسال می کردند، که منجر به مسدود شدن آدرس IP من توسط بسیاری از ایمیل ها، به ویژه gmail.com شد و در ارتباط با این، کاربران می توانستند نامه ها را دریافت کنند، بنابراین من مجبور شدم جایگزین جستجو کنم، و آن را پیدا کردم - این SMTP است

شاید برایتان جالب باشد که چرا فیلمنامه من بهتر از فیلمنامه های دیگری است که در فضای باز دراز می کشند؟! من پاسخ خواهم داد

  1. با Yandex، Rambler، Mail کار می کند (gmail نتوانست برنده شود)
  2. کد را پاک کنید. برای پیکربندی آن، فقط چند خط را تغییر دهید
  3. ایمیل ها را با فرمت 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" // اگر مطمئن نیستید، پورت کاری را تغییر ندهید"; $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: ".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: The Bat! (v3.99.3) Professionalrn"; $header.="Reply-To: =?windows-1251?Q?".str_replace("+","_",str_replace("%","=",urlencode(" ".$config["smtp_from"]."")))."؟=<".$config["smtp_email"].">rn"; $header.="X-Priority: 3 (Normal)rn"; $header.="Message-ID:<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-Version: 1.0rn"; charset=windows-1251rn"; $header.="Content-Transfer-Encoding: 8bitrn"; $smtp_conn = fsockopen("".$config["smtp_host"]."، $config["smtp_port"]،$errno , $errstr, 10); if(!$smtp_conn) (چاپ "اتصال از سرورها"؛ fclose($smtp_conn); exit;) $data = fputs($smtp_conn,"EHLO " config["smtp_searcher"]."rn"); exit;) fputs($smtp_conn,"AUTH LOGINrn"; fclose ($smtp_conn); ) if($code != 334) (چاپ "خطا در دسترسی به این کاربر"؛ fclose($smtp_conn); exit;) fputs($smtp_conn,base64_encode("".$config["smtp_password"].""). "rn"); fclose($smtp_conn); exit;) fputs($smtp_conn,"MAIL 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 AND $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) == " " ) ( break; ) ) $data را برگردانید ) $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 را تغییر دهید و همه چیز به خوبی کار خواهد کرد.

حالا بیایید به برخی از عناصری که می خواهم روی آنها تمرکز کنم نگاه کنیم.

به عنوان مثال، خطایی که هنگام ارسال از طریق SMTP به گوگل دریافت می کنیم. در ابتدا این متن خطا را مشاهده می کنیم:

برای دیدن چیزهای خاص تر، اجازه دهید کد را کمی تغییر دهیم

Fputs($smtp_conn"AUTH LOGINrn"); $code = substr(get_data($smtp_conn),0.3000); echo $code; if($code != 334) (پرینت "سرور اجازه نداد مجوز شروع شود"؛ fclose($smtp_conn)؛ خروج؛)

و در نهایت یک خطای بسیار خاص دریافت می کنیم

530 5.7.0 ابتدا باید یک فرمان STARTTLS صادر کند. x4sm16408296lbn.2 - gsmtp

نمی‌دانم دقیقاً به چه معناست، اما معتقدم که ارتباطی با یک اتصال امن و ناامن دارد. من هنوز نمی دانم چگونه از شر آن خلاص شوم، بنابراین جیمیل در حال حاضر شکست ناپذیر است.



2019-08-05

سلام، بازدید کننده عزیز!

بابت تاخیر در به روز رسانی وبلاگ مرا ببخشید. اما یک توضیح کاملا قابل درک برای این وجود دارد. پس از همه، تابستان، ویلا، مهمانان، جنگل، آب و خیلی چیزهای دیگر، که به من اجازه نداد به مسائل ایجاد یک وب سایت بپردازم. اما اکنون کمی آزاد شده ام، مهمانان رفته اند و فکر می کنم اکنون قطعاً می توانم به این موضوع توجه کنم.

بنابراین، پس از اینکه در آخرین مقاله، ایمیل دامنه خود را به یکی از سرویس های پست الکترونیکی متصل کردیم، اکنون بیایید ببینیم چگونه می توانید از سایت ایمیل ارسال کنید. علاوه بر این، به گونه ای که نامه های ما به هرزنامه ختم نمی شود، بلکه به طور قابل اعتماد و با احتمال بالا به گیرندگان ما تحویل داده می شود.

به طور کلی، یک تابع mail() داخلی برای ارسال نامه در PHP وجود دارد. اما لازم به ذکر است که علیرغم سادگی این روش (در این مورد برای ارسال حروف کافی است تنها یک خط کد با پارامترهای مشخص مشخص شود)، استفاده از این گزینه دارای یک ایراد قابل توجه در ارتباط با مشکل SPAM است. .

واقعیت این است که فیلترهای ضد اسپم سرورهای ایمیل در سمت گیرنده واقعاً به نامه‌هایی که از طریق تابع ()mail ارسال می‌شوند، خوشایند نیستند. و در بیشتر موارد، چنین پیام هایی قبل از رسیدن به مخاطب فیلتر یا حتی حذف می شوند.

و برای حذف هر چه بیشتر چنین مواردی معمولاً از گزینه دیگری استفاده می شود که در آن نامه هایی ارسال می شود که گویی توسط یک سرویس پستی شخص ثالث انجام شده است.

این روش ارسال نامه از طریق SMTP با مجوز نامیده می شود. که امروز با استفاده از مثال ارسال فرم بازخورد به آن خواهیم پرداخت. علاوه بر این، برای این کار از کتابخانه نسبتاً معروف و محبوب PHPMailer استفاده خواهیم کرد که به شما امکان می‌دهد ارسال نامه‌ها را از طریق SMTP به سادگی سازماندهی کنید.

  • چگونه نامه های بازخورد ارسال خواهیم کرد
  • ایجاد فرم بازخورد
  • نصب کتابخانه PHPMailer
  • ما یک اسکریپت برای ارسال نامه از طریق SMTP ایجاد می کنیم
  • بررسی ارسال ایمیل
  • فایل های منبع سایت

چگونه نامه های بازخورد ارسال خواهیم کرد

قبل از شروع کار عملی ارسال بازخورد نامه، ابتدا تصمیم می گیریم چگونه این کار را انجام دهیم.

فرم بازخورد به گونه ای طراحی شده است که کاربر بتواند با مدیر سایت برای انتقال پیام خود ارتباط برقرار کند. به طور معمول، این فرم از چندین فیلد و یک دکمه "ارسال" تشکیل شده است.

اصولاً برای ارسال ایمیل کافی است از چند فیلد استفاده کنید که اطلاعات کافی در مورد کاربر و محتوای پیام ارائه می دهد، مانند:

  • "Name" - برای وارد کردن نام فرستنده پیام؛
  • "ایمیل" - برای آدرس ایمیل فرستنده؛
  • "موضوع پیام"؛
  • "متن پیام".

اگرچه می توانید دیگران را اضافه کنید. به عنوان مثال، یک شماره تلفن، اگر واقعاً لازم است.

در مورد ما، چنین نامه هایی از یک صندوق پستی واقعی با مجوز سرویس پستی که دامنه ما به آن متصل است، به آدرس مدیر سایت ارسال می شود.

از آنجایی که در مقاله قبلی بر بررسی اتصال ایمیل دامنه به سرویس Yandex.Mail تمرکز کردیم، برای این گزینه نامه ارسال می کنیم. اگرچه این مهم نیست. در زیر گزینه هایی را مشاهده خواهید کرد که با تغییر آن ها به شما امکان ارسال ایمیل از طریق سرور ایمیل Mail.ru را می دهند.

به عنوان یک صندوق پستی واقعی که نامه‌ها از آن ارسال می‌شود، از حساب کاربری ایمیل دامنه جدید ایجاد شده، مثلاً با آدرس استفاده می‌کنیم. [ایمیل محافظت شده]. و ما این نامه ها را به صندوق پستی مدیر ارسال می کنیم [ایمیل محافظت شده]، که قبلا در مقاله قبلی ایجاد کردیم.

بنابراین، فرستنده نامه از فرم بازخورد، صندوق پستی خواهد بود [ایمیل محافظت شده]و گیرنده - [ایمیل محافظت شده]. در این صورت کلیه اطلاعات کاربری که پیام را همراه با محتوای آن ارسال کرده است در متن نامه ارسالی مخابره می شود.

ایجاد فرم بازخورد

پس از تصمیم گیری در مورد روش ارسال نامه، اکنون یک فرم بازخورد ایجاد می کنیم که با آن این کار را انجام خواهیم داد.

در زیر کد HTML این فرم را در صفحه "Contacts" قرار می دهیم (فایل kontakty.php در فهرست مقالات).

    "مقاله" >

    مخاطب

    بازخورد

    "مخاطب"عمل = "#" روش = "پست" >

    فرم انتقادات و پیشنهادات

    برای تمام سوالات، درخواست ها و پیشنهادات تجاری، می توانید با استفاده از فرم بازخورد زیر با ما تماس بگیرید.

    "بلوک تماس" >

    "ورودی تماس" >

    "متن"شناسه = "نام مخاطب"نام = "نام مخاطب"عنوان = "نام باید به زبان روسی باشد و حداقل شامل 3 کاراکتر باشد" الگو = "{3,}" مورد نیاز >

  1. "تماس خالی" >

    "ورودی تماس" >

    "پست الکترونیک"شناسه = "تماس با ایمیل"نام = "تماس با ایمیل"مورد نیاز >

  2. "مورد تماس" >

  3. "تماس-نظر" >

  4. "دکمه تماس" >

    "ارسال"نام = "دکمه تماس"ارزش = "ارسال" >

شکل 1 کد HTML فرم بازخورد

در اسکرین شات زیر می توانید ببینید که فرم بازخورد نشان داده شده در اینجا در نهایت چگونه به نظر می رسد.

بدین ترتیب فرم مورد نظر ایجاد می شود. و اکنون می توانید به سراغ مسائل پردازش و ارسال داده ها در قالب یک پیام ایمیل بروید.

نصب کتابخانه PHPMailer

همانطور که قبلاً ذکر شد، برای ارسال نامه از کتابخانه PHPMailer استفاده می کنیم که ارسال ایمیل از طریق پروتکل SMTP با مجوز در یک سرویس نامه شخص ثالث را به طور قابل توجهی ساده می کند.

برای نصب آن باید فایل های لازم را دانلود کنید. این را می توان از طریق وب سرویس GitHub با استفاده از Composer (یک مدیر وابستگی بسته برای PHP) انجام داد. یا به سادگی فایل های لازم را به روش معمول دانلود کنید.

اسکرین شات 73

در زیر صفحه وب سرویس GitHub وجود دارد که لینک دانلود معمولی کتابخانه PHPMailer در آن مشخص شده است.

در ضمن آخرین نسخه 6.0.7 که در زمان نگارش این مقاله ذخیره شده است را می توانید از مطالب پیوست دانلود کنید.

در هر صورت باید فایل آرشیو به دست آمده از حالت بسته خارج شود و پس از آن پوشه PHPMailer-master استخراج شده با تمام محتویات آن در ریشه سایت قرار گیرد. در عین حال، برای سادگی، می توانید نام آن را به PHPMailer تغییر دهید. در زیر محتویات پوشه PHPMailer قرار داده شده در دایرکتوری ریشه سایت است.

بنابراین ما کتابخانه PHPMailer را نصب کردیم. پس از آن می توانیم شروع به ایجاد یک اسکریپت کنیم که با آن پیام های ایمیل را از وب سایت خود ارسال کنیم.

ما یک اسکریپت برای ارسال نامه از طریق SMTP ایجاد می کنیم

برای نوشتن اسکریپت، کافی است از توصیه هایی برای استفاده از PHPMailer که در صفحه GitHub ارائه شده است، استفاده کنید، که قبلا برای دانلود کتابخانه از آن استفاده کرده بودیم.

آنها، به ویژه، نشان می دهند که در ابتدای اسکریپت لازم است کلاس های PHPMailer به فضای نام جهانی وارد شود. و خطوط خاصی از کد مربوطه داده شده است. همچنین نمونه هایی از استفاده از ویژگی ها و روش های PHPMailer، از جمله برای گزینه ارسال نامه از طریق SMTP وجود دارد.

اما اگر این کافی نیست، می توانید از اسنادی که حاوی توضیحاتی در مورد تمام ویژگی ها و روش های این کتابخانه است نیز استفاده کنید.

اسکرین شات 74

در زیر کد اسکریپت برای ارسال نامه از فرم بازخورد از طریق SMTP با مجوز وجود دارد. جایی که تمام خطوط مربوط به PHPMailer با توضیح داده شده و با پس زمینه روشن برجسته شده است.

بقیه قسمت ها، شامل قطعات مربوط به دریافت و پردازش داده ها از فرم، که قبلاً مجبور بودیم در پردازنده های دیگر استفاده کنیم، با پس زمینه تیره نشان داده شده است. آنها قبلاً در مقاله ای که به طور خاص به مسائل بدست آوردن و تأیید داده ها از یک فرم در PHP اختصاص داشت با جزئیات کافی مورد بحث قرار گرفتند. جایی که ما همچنین در مورد عملکرد کاربر جهانی برای اعتبارسنجی و پردازش داده های فرم صحبت کردیم check_symbol().

ما این اسکریپت را در همان فایل kontakty.php که قبلا فرم بازخورد را در آن ایجاد کرده بودیم قرار می دهیم.

    //----اسکریپت ارسال نامه از طریق SMTP با استفاده از PHPMailer----

    //کلاس های PHPMailer را به فضای نام جهانی وارد کنید. آنها باید در بالای اسکریپت باشند، نه در داخل تابع

    استفاده کنید PHPMailer\PHPMailer\PHPMailer ;

    استفاده کنید PHPMailer\PHPMailer\Exception ;

    اگر (!خالی($_POST["دکمه تماس" ])) (

    $name = $_POST["contact-name" ];

    $name = check_symbol ($name, "Name" , "1" , "/^+\z/iu" );

    $email = $_POST["contact-email" ];

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

    $subject = $_POST["contact-subject" ];

    $subject = check_symbol ($subject، "موضوع پیام" , "1" , "0" );

    $comment = $_POST["contact-comment" ];

    $comment = check_symbol ($comment, "متن پیام", "1" , "0" );

    اگر (!خالی($GLOBALS["هشدار" ])) (

    $alert = "داده های فرم ارسال نشد. خطاهای زیر پیدا شد:\n".$alert;

    عبارتند از"alert.php" ;

    دیگر {

    //اتصال کتابخانه

    نیاز"PHPMailer/src/PHPMailer.php" ;

    نیاز"PHPMailer/src/Exception.php"؛

    نیاز"PHPMailer/src/SMTP.php"؛

    $mail = جدید PHPMailer(); //کلاس را راه اندازی کنید

    $from = " [ایمیل محافظت شده]" ; //آدرس ایمیلی که نامه از آن ارسال شده است

    $to = " [ایمیل محافظت شده]" ; //آدرس گیرنده

    $mail -> isSMTP(); //از پروتکل SMTP استفاده کنید

    $mail -> Host = "smtp.yandex.ru" ; //آدرس سرور ایمیل

    $mail -> SMTPAuth = درست است، واقعی ; //حالت مجوز را فعال کنید

    $mail -> نام کاربری = " [ایمیل محافظت شده]" ; //ورود از یک ایمیل دامنه متصل به یک سرویس ایمیل شخص ثالث (در این مورد Yandex.Mail)

    $mail -> Password = "27MrDon89" ; //رمز عبور ایمیل دامنه

    $mail -> SMTPSecure = "ssl" ; //پروتکل رمزگذاری

    $mail -> Port = "465" ; //پورت سرور SMTP

    $mail -> CharSet = "UTF-8" ; //رمزگذاری

    $mail -> setFrom ($from, "Administrator" ); //آدرس و نام فرستنده

    $mail -> addAddress ($to، "Administrator" ); //آدرس و نام گیرنده

    $mail -> isHTML ( درست است، واقعی ); //فرمت ایمیل را روی HTML تنظیم کنید

    $mail -> موضوع = "فرم بازخورد ارسال شد"; //موضوع ایمیل (عنوان)

    $mail -> بدن = "

    نام فرستنده: $name

    آدرس فرستنده: ایمیل $

    موضوع پیام: موضوع $

    محتوای پیام: $نظر



    " ; //محتوای پیام

    $mail -> AltBody = "متن نامه جایگزین"; //ایمیل جایگزین اگر سرویس گیرنده ایمیل از فرمت HTML پشتیبانی نمی کند

    $mail -> SMTPDbug = 0 ; //فعال کردن اشکال زدایی SMTP: 0 - خاموش (برای استفاده معمولی)، 1 = پیام های مشتری، 2 - پیام های مشتری و سرور

    اگر($mail -> send()) (

    $alert = "پیغام فرستاده شد"; //خروجی پیامی در کادر محاوره ای مرورگر در مورد ارسال موفقیت آمیز نامه

    دیگر {

    $alert = "خطا، ایمیل ارسال نمی شود:".$mail -> ErrorInfo ; //خروجی پیام خطا

    عبارتند از"alert.php" ;

شکل 5 اسکریپت برای ارسال ایمیل از طریق SMTP با مجوز

همانطور که مشاهده می کنید تمامی خطوط مربوط به ارسال پیام ایمیل که روش ها و ویژگی های لازم در آن ها مشخص شده است، همراه با کامنت می باشد. بنابراین، بی معنی است که خودمان را تکرار کنیم، اما می توانیم فقط در مورد برخی از آنها صحبت کنیم، که در واقع به توضیحات اضافی نیاز دارند، یعنی:

1. با توجه به اینکه نامه از یک سرویس پستی شخص ثالث ارسال می شود، تنظیمات مربوط به سرور SMTP خاص در اینجا اعمال می شود. در این مورد، برای استفاده از سرور Yandex.Mail، مقادیر ویژگی زیر اعمال می شود:

  • ویژگی میزبان(pos.28) - آدرس سرور ایمیل با مقدار smtp.yandex.ru؛
  • ویژگی SMTPSecure
  • ویژگی بندر

این مقادیر ویژگی از صفحه Yandex.Help نشان داده شده در تصویر زیر گرفته شده است.

اما چنین اطلاعاتی را می توان از منابع دیگر نیز به دست آورد. برای انجام این کار، کافی است پرس و جوی مناسب را در موتور جستجو وارد کنید، به عنوان مثال: "سرور Yandex smtp". از کجا می توانید تعداد زیادی مرجع در این مورد پیدا کنید.

به روشی مشابه، مقادیر تنظیمات را می توان از سایر سرورهای SMTP به دست آورد. در زیر تصویری از صفحه راهنمای Mail.ru مشاهده می شود که تنظیمات سرور SMTP سرویس پست الکترونیکی Mail.ru را نشان می دهد.

و بنابراین، در مورد استفاده از Mail.ru به عنوان یک سرور SMTP شخص ثالث، مقادیر زیر از ویژگی های کلاس PHPMailer باید اعمال شود:

  • ویژگی میزبان(pos.28) - آدرس سرور ایمیل (smtp.mail.ru)؛
  • ویژگی SMTPSecure(pos.32) - پروتکل رمزگذاری (ssl)؛
  • ویژگی بندر(محل 33) - پورت سرور SMTP (465).

رویکرد مشابهی باید برای سایر سرویس های ایمیل اعمال شود.

2. در ملک نام کاربری(مقام 30) لازم است آدرس کامل صندوق پستی دامنه مشخص شود. در این مورد، " [ایمیل محافظت شده]".

با این حال، اگر از یک حساب غیر از یک حساب پستی دامنه برای ارسال نامه استفاده می کنید، اما آدرسی که مستقیماً به سرویس پست مرتبط است، برای مثال " [ایمیل محافظت شده]"، سپس ورود باید تنها بخشی از آدرس تا علامت "@" باشد. در این حالت، ورود به سیستم دارای مقدار "بازخورد" خواهد بود.

3. PHPMailer یک ویژگی را فراهم می کند SMTPDbug(مقام 50)، که به شما امکان می دهد سطوح مختلف خطا را در صفحه مرورگر نمایش دهید. این ویژگی یافتن مشکلات هنگام اشکال زدایی یک اسکریپت را بسیار ساده می کند.

به طور معمول، در حالت عادی، با تنظیم مقدار روی 0، خروجی اطلاعات خطای دقیق غیرفعال می شود. اما در صورت بروز مشکل در ارسال نامه، یا در حین اشکال زدایی، می توان از مقادیر دیگر برای نمایش اطلاعات معنادارتر در مورد خطا استفاده کرد.

برای اینکه ببینیم این در عمل چگونه به نظر می رسد، اجازه دهید به طور موقت برخی از خطاها را به تنظیمات وارد کنیم. به عنوان مثال، در رمز عبور ایمیل دامنه (ویژگی کلمه عبور، موقعیت 31). و همچنین برای نمایش اطلاعات دقیق در مورد خطا، به طور موقت در ویژگی تنظیم شده است SMTPDbug(pos.50) مقدار 1. پس از آن، وقتی همه چیز اشکال زدایی و بررسی شد، حالت اشکال زدایی SMTP را غیرفعال می کنیم و 1 را با 0 جایگزین می کنیم.

در قسمت پایانی اسکریپت، پس از مشخص شدن تمامی ویژگی ها و روش های لازم، از روش ارسال نامه استفاده می شود. ارسال()) (مقام 51). و در صورت ارسال نامه، و روش ارسال()برای شی $mail true را برمی گرداند، سپس در گفتگوی مرورگر از طریق متغیر هشدار $پیامی در مورد ارسال موفقیت آمیز نامه نمایش داده می شود (مقام 52).

اگر به دلایلی نامه ارسال نشد، و بر این اساس، روش نمی تواند درست را بازگرداند، این حالت با یک پیام خطای مربوطه همراه خواهد شد (مقام 55).

بررسی ارسال ایمیل

پس از ایجاد یک اسکریپت برای ارسال نامه، طبیعتاً باید به نتیجه "خلاقیت" خود نگاه کنیم. آیا در اینجا همه چیز را در نظر گرفته ایم و هیچ اشتباهی مرتکب نشده ایم؟

برای انجام این کار، بیایید سعی کنیم، همانطور که در نظر گرفته شده است، از فرم بازخورد، پیامی از کاربر به مدیر سایت ارسال کنیم. در زیر یک اسکرین شات از فرم بازخورد با فیلدهای پر شده قبل از ارسال آمده است.

و در اینجا نتیجه ارسال فرم است.

جایی که، از پیام موجود در کادر محاوره ای مرورگر، مشخص است که نامه به دلیل مشکل در اتصال SMTP نمی تواند ارسال شود.

اما، از هم اکنون ملک SMTPDbug(مقاله 50) به مقدار 1 اختصاص داده می شود، سپس می توانیم اطلاعات دقیقی از خطای رخ داده را مشاهده کنیم و دلیل وقوع آن را دریابیم.

اسکرین شات زیر نشان می دهد که هنگام تلاش برای اتصال، یک خطای احراز هویت شناسایی شده است، به معنی استفاده از ورود یا رمز عبور نادرست.

پس از رفع عدم تطابق رمز عبور (قبلاً از رمز عبور نادرستی استفاده می شد تا بتوانیم خروجی اطلاعات اضافی مربوط به خطا را بررسی کنیم)، سعی می کنیم دوباره نامه را ارسال کنیم.

این بار به نظر همه چیز خوب پیش رفت و پیامی دریافت کردیم که ایمیل با موفقیت ارسال شد. ظاهراً به جز خطای موقتی که عمداً در رمز عبور ایمیل دامنه معرفی شده است، هیچ اشتباه دیگری مرتکب نشده ایم.

اما برای اینکه مطمئن شویم نامه واقعاً به مخاطب تحویل داده شده است، نامه را با آدرس وارد کنیم. [ایمیل محافظت شده]و به نتیجه نگاه کنید

همانطور که می بینید، نامه از آدرس [ایمیل محافظت شده]، که از طریق آن یک ایمیل با نام "بازخورد" با موفقیت به مدیر سایت رسید. در عین حال، بدنه نامه حاوی تمام محتوایی است که با استفاده از داده های دریافت شده از فرم بازخورد در اسکریپت ایجاد کردیم، یعنی:

  • نام فرستنده: Nikolay;
  • آدرس فرستنده: [ایمیل محافظت شده];
  • موضوع پیام: بررسی ارسال نامه
  • محتوای پیام: پیام آزمایشی.

اکنون، پس از بررسی موفقیت آمیز ارسال نامه، می توانید با اختصاص ویژگی، حالت اشکال زدایی SMTP را غیرفعال کنید. SMTPDbug(pos.50) مقدار 0.

بنابراین، ما کار ایجاد ابزاری برای ارسال نامه از طریق SMTP با مجوز با استفاده از یک سرور پست الکترونیکی شخص ثالث را تکمیل کردیم.

به عنوان مثال، در مقاله بعدی نحوه ارسال ایمیل تایید برای بازیابی اطلاعات حساب کاربری ثبت شده را بررسی خواهیم کرد.

فایل های منبع سایت

فایل های منبع سایت با به روز رسانی هایی که در این مقاله انجام شده است را می توانید از مطالب اضافی پیوست دانلود کنید:

  • فایل های دایرکتوری www
  • جداول پایگاه داده MySQL

در 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 = new KM_Mailer(سرور، پورت، کاربر، رمز عبور، نوع)؛ */ /* نوع می تواند: null، tls یا ssl */ $mail = 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->clearBCC(echo "هنگام اتصال به سرور SMTP");

تنظیم اسکریپت عمدتا بر اساس آرایه $SenderConfig است، در اینجا باید SMTP:server، پورت، ورود به سیستم و رمز عبور ایمیل را مشخص کنیم. بیایید هر کلید آرایه را توضیح دهیم:

SMTP_server - آدرس سرور SMTP (آدرس جداگانه برای ایمیل های مختلف)

ایمیل Mail.ru: پورت smtp.mail.ru: 25، 587 و 465 (با رمزگذاری SSL)

ایمیل Yandex: پورت smtp.yandex.ru: 25, 587 465 (پورت SSL)

پست Rambler: پورت mail.rambler.ru: 25, 587 465 (پورت SSL)

یاهو میل: 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)

اگر سوالی دارید در نظرات زیر بنویسید.

PHP را ایمیل کنید

این تابع به صورت پیش فرض به عنوان ارسال ایمیل پیاده سازی می شود. این قابلیت به سرور شخص ثالث برای ارسال ایمیل نیاز ندارد. برای بررسی صحت این تابع کافیست یک فایل test.php در پوشه سایت ایجاد کنید و کد زیر را در آن قرار دهید:

به جای آن کجا "پست الکترونیکگیرنده" ایمیلی که نامه باید به آن ارسال شود را وارد کنید.

این فایل را در ریشه سایت خود قرار دهید.

سپس www.YourDomain/test.php را در نوار آدرس وارد کنید. اگر نامه ای در ایمیل مشخص شده دریافت شود، میزبانی شما با عملکرد ارسال نامه به درستی کار می کند. ایمیل PHP". ممکن است نامه به اسپم ختم شده باشد، بنابراین باید بررسی شود.

اگر نامه با رمزگذاری نامفهوم رسید، خط را تغییر دهید: "بررسی ارسال نامه"بر "بررسی ارسال نامه"، "Content-type:text/html;charset=utf-8".

و ارسال نامه را از طریق نوار آدرس مرورگر خود تکرار کنید.

اگر پس از دستکاری های فوق نامه آزمایشی به دست گیرنده نهایی نرسید، باید با پشتیبانی فنی هاست خود تماس بگیرید.

از جمله معایب این روش، شایان ذکر است که این روش به طور مداوم کار نمی کند. ممکن است وقفه هایی در ارسال ایمیل در سمت میزبان ایجاد شود.

عیب اصلی این روش این است که تمام نامه های ارسال شده به ایمیل مشتریان توسط سرویس های پستی (gmail, mail.ru, yandex.ru) شناسایی نمی شوند زیرا مستقیماً از وب سایت شما ارسال شده اند.

سرویس ایمیل Gmail این حروف را با علامت سوال و امضا نشان می دهد: "سیستم Gmail نتوانست تایید کند که این نامه از دامنه YourDomain ارسال شده است."

برای جلوگیری از این وضعیت .

SMTP (پروتکل ساده انتقال نامه)

SMTP - پروتکل انتقال نامه. در مجموع، برای تنظیم ارسال نامه با استفاده از این پروتکل، به خود سرور SMTP نیاز دارید. رایج ترین گزینه برای استفاده از نامه شرکتی (دامنه) yandex.ru به عنوان سرور SMTP https://pdd.yandex.ru/ است.

اول از همه لازم است حساب (پست) yandex، که بر اساس آن ایمیل هایی برای دامنه شما ایجاد می شود: “order@YourDomain” “info@YourDomain”... اکانت اصلی در هیچ کجا قابل مشاهده نخواهد بود و فقط برای ایجاد ایمیل های دامنه بر اساس آن در آینده استفاده می شود.

پس از مجوز در حساب شخصی Yandex شما، یک ایمیل دامنه در پیوند https://pdd.yandex.ru/ ایجاد می شود. این ایمیل دامنه ای است که کاربران در قسمت «فرستنده» مشاهده خواهند کرد.

فیلد "فرستنده" هنگام ارسال ایمیل از طریق SMTP ضروری است. استفاده از SMTP برای ارسال حروف، ترکیبی از " دامنه" - "پست الکترونیک"، در نتیجه حروف توسط خدمات پستی شناسایی می شوند.


در میان معایب این روش، شایان ذکر است که "بارگیری" پرتره ایمیل دامنه را نمی توان ذکر کرد، زیرا خود سرویس های پستی هنوز این قابلیت را ارائه نمی دهند.




بالا