рд╕рдВрд▓рдЧреНрди рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде HTML рдИрдореЗрд▓

рдПрдХ рд╡рд╛рдЬрд┐рдм рд╕рд╡рд╛рд▓: рдХреНрдпреЛрдВ рдЪрд┐рддреНрд░ рд╕рдВрд▓рдЧреНрди рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдХреНрд╖рд░реЛрдВ рдХреЛ рднрд╛рд░реА рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЯреНрд░реИрдлрд╝рд┐рдХ рдмрдврд╝рд╛рддрд╛ рд╣реИ? рдФрд░ рдЗрд╕рд▓рд┐рдП рдХрд┐ рдРрд╕реА рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ рд╣реИ:

рдЫрд╡рд┐

рдпрд╣ рджреГрд╢реНрдп рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рд╛рдкреНрдд рдкрддреНрд░рд╛рдЪрд╛рд░ рдХреЛ рдСрдлрд╝рд▓рд╛рдЗрди рдкрдврд╝рддрд╛ рд╣реИ рдпрд╛ рдореЗрд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдмрд╛рд╣рд░реА рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдЪрд┐рддреНрд░ рдирд╣реАрдВ рдЦреЛрд▓рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХреА рд╕реБрд░рдХреНрд╖рд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдХрд╛рд░рдгред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрдардиреАрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реМрдВрджрд░реНрдпрд╡рд╛рджреА рд░реВрдк рд╕реЗ рд╕реБрдЦрджрд╛рдпрдХ рдирд╣реАрдВред

рдпрджрд┐ рдЖрдк рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдкрддреНрд░ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕рдордЧреНрд░ рд░реВрдк рд▓реЗрдЧрд╛, рдФрд░ рд▓реЗрдЖрдЙрдЯ рдХреЗ рдЪрд░рдг рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдЕрдм рдХреЛрдИ рдЫреЗрдж рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдЗрд╕рд▓рд┐рдП, рдЖрдкрдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдЕрдкрдиреЗ рдЖрдЧреЗ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдЕрдХреНрд╖рд░реЛрдВ рдХреЗ рдкреВрд░реНрдг-HTML-рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдиреНрдпреВрдЬрд╝рд▓реЗрдЯрд░, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕реВрдЪрдирд╛рдПрдВ, рдЖрджрд┐)ред рдЗрд╕рдХреЗ рдмрд╛рдж, рдЯреЗрдореНрдкрд▓реЗрдЯ рдПрдХ рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рджреНрд╡рд╛рд░рд╛ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛрдб рдХреЗ рд╕рд╛рде рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд┐рдП рдмрд┐рдирд╛, рд▓реЗрдЖрдЙрдЯ рдореЗрдВ рд▓рдЧреЗ рд╣реБрдП рд╣реИрдВред

рдХрд╛рд░реНрдп рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИ, рдХреЛрдИ рд╕рд╛рдВрд╕рд╛рд░рд┐рдХ рдХрд╣ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдХреБрдЫ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдФрд░ 100500 рд╡реАрдВ рдмрд╛рдЗрдХ рдХреЛ рд╕реНрдкреЙрди рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рд╣рдо рдХреБрдЦреНрдпрд╛рдд рд╕реНрд╡рд┐рдлреНрдЯ рдореЗрд▓рд░ рдХреА рдУрд░ рдореБрдбрд╝реЗрдВ, рдЬрд┐рд╕рдиреЗ рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдп рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдЕрдкрдиреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдереЛрдбрд╝рд╛ рдмрдврд╝рд╛рдпрд╛ рд╣реИред

рдпрд╣ рдПрдХ рд╕рд╢рд░реНрдд рдкрддреНрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреА рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛, рдЗрд╕реЗ index.html рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ:

<html><head></head><body> <img src=тАЭimages/company_logo.gifтАЭ > , {username}!  ,       ,    {something}  ,   . <div> : <img src=тАЭimages/{something_photo}тАЭ></div> </body></html> 


рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддреА рд╣реИ:

 email_templates/ template1/ index.html images/ company_logo.gif photo1.png ... photoN.png template2/ ... 


рд╡рд░реНрдЧ:

 class SendEMail { static $transport = false; public $filename = 'index.html', //   html  $tplFolder = '', //    $imgFolder = 'images/', $subject = '', $from = '', $fromName = null, $contentType = 'text/html', $charset = 'utf-8'; private $message, $data; public function __construct($options) { foreach($options as $option => $value) $this->$option = $value; if (!self::$transport) self::$transport = Swift_SmtpTransport::newInstance(); } public function Send($data, $email, $name = null) { $this->data = $data; $this->message = Swift_Message::newInstance(); $mess =& $this->message; //    subject ,      $subject = $this->SubstituteData($this->subject); $body = $this->GetBody(); // email    $mess->setTo($email, $name); //   $mess->setFrom($this->from, $this->fromName); //   $mess->setSubject($subject); //  $mess->setBody($body); $mess->setContentType($this->contentType); $mess->setCharset($this->charset); $mailer = Swift_Mailer::newInstance(self::$transport); return $mailer->send($this->message); } private function GetBody() { //    $body = file_get_contents($this->tplPath.$this->filename); //     $body = $this->SubstituteData($body); //   ,   imgPath   jpg, png, gif,   src   img // 'self::AddImage'    php > 5.3,  5.2    array($this, 'AddImage') return preg_replace_callback('/'.preg_quote($this->imgPath, '/').'((.+)\.(jpg|png|gif))/i', 'self::AddImage', $body); } //  ,  src private function AddImage($matches) { $path = $this->tplPath."/".$matches[0]; return $this->message->embed(Swift_Image::fromPath($path)); } //      private function SubstituteData($str) { if (empty($this->data)) return $str; foreach($this->data as $k => $v) $str = str_replace($k, $v, $str); return $str; } } 


рдиреНрдпреВрдЬрд╝рд▓реИрдЯрд░ рдЙрджрд╛рд╣рд░рдг:

 $sm = new SendEMail(array( 'tplPath' => '/path_to_emails/email_templates/template1/', 'subject' => ' ', 'from' => 'noreply@site.com' )); $recipients[0] = array( 'email' => 'dima@blabla.com', 'user' => ' ', 'something' => '', 'something_photo' => 'myalka.jpg' ); $recipients[1] = array( 'email' => 'volodya@blabla.com', 'user' => ' ', 'something' => '', 'something_photo' => 'meshalka.jpg' ); $success = 0; foreach($recipients as $rec) { $data = array('{user}' => $rec['user'], '{something}' => $rec['something'], '{something_photo}' => $rec['something_photo']); $sended = $sm->Send($data, $rec['email'], $rec['user']); if ($sended) $success++; } 


рдЕрдм рдЖрдкрдХреЛ рдЕрдкрдиреЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдЕрдХреНрд╖рд░реЛрдВ рдХреЗ рдЖрдХрд╛рд░ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЙрдЪрд┐рдд рдорд╛рддреНрд░рд╛ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИ, рдЙрди рд▓реЛрдЧреЛрдВ рдХреА рджреЗрдЦрднрд╛рд▓ рдХрд░рдирд╛, рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдлреЛрди рд╕реЗ рдЗрдВрдЯрд░рдиреЗрдЯ рд╣реИ, рдзреАрдореА рдЧрддрд┐ рд╕реЗ, рдпрд╛рддрд╛рдпрд╛рдд рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдХреЗ рд╕рд╛рдеред

рдмреЗрд╢рдХ, рдбреЗрдЯрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдХрдХреНрд╖рд╛ рдореЗрдВ рд▓рд╛рдЗрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рдХреЛрдб рдХреА рдмреЗрд╣рддрд░ рдкрдардиреАрдпрддрд╛ рдФрд░ рд╕рдордЭ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐ рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХрд╛ рднреА рдЕрднрд╛рд╡ рд╣реИред

Source: https://habr.com/ru/post/In172269/


All Articles