چطور می توان در برنامه نویسی جوملا به کاربران ایمیل فرستاد؟
در این مقاله، قصد داریم به شما نشان دهیم که چطور در کامپوننت ها می توان به کاربران ایمیل فرستاد.
برای انجام این کار از متدها و کلاس های جوملا استفاده می کنیم. این کلاس ها و متدها، کار را برای ارسال ایمیل بسیار راحت کرده اند.
به دست آوردن شیء ایمیل
برای به دست آوردن شیء ایمیل از کلاس JFactory استفاده می کنیم. این کلاس، با استفاده از متد ()getMailer، یک ارجاع به شیء ایمیل سراسری(JMail) را به ما می دهد:
مثال (آموزش ارسال ایمیل در جوملا)
$mailer = JFactory::getMailer();
همان طور که در دستورات بالا مشاهده می کنید، اکنون شیء ایمیل در متغیر mailer$ قرار گرفته است.
تنظیم اطلاعات فرستنده
برای اینکه ایمیل فرستنده و نام فرستنده را مشخص کنیم، از تابع ()getConfig که در کلاس JFactory قرار دارد استفاده می کنیم. و سپس با استفاده از تابع ()setSender این خصوصیات را ست می کنیم:
لازم به ذکر است که در عکس بالا، تنظیمات ایمیل در قسمت تنظیمات کلی جوملا و در تب سرور قرار دارد.
مثال (آموزش ارسال ایمیل در جوملا)
$config = JFactory::getConfig(); $sender = array( $config->get( 'mailfrom' ), $config->get( 'fromname' ) ); $mailer->setSender($sender);
تنظیم اطلاعات گیرنده
شما می توانید برای ست کردن ایمیل گیرنده، از تابع ()addRecipient استفاده کنید. برای مشخص کردن آدرس ایمیل کاربری که تازه لاگین کرده است، از تابع ()getUser استفاده می کنیم:
مثال (آموزش ارسال ایمیل در جوملا)
$user = JFactory::getUser(); $recipient = $user->email; $mailer->addRecipient($recipient);
در صورتی که می خواهید به چند کاربر، این ایمیل را ارسال کنید، باید ایمیل آنها را در یک آرایه به صورت زیر قرار دهید:
مثال (آموزش ارسال ایمیل در جوملا)
$recipient = array( این آدرس ایمیل توسط spambots حفاظت می شود. برای دیدن شما نیاز به جاوا اسکریپت دارید', این آدرس ایمیل توسط spambots حفاظت می شود. برای دیدن شما نیاز به جاوا اسکریپت دارید', این آدرس ایمیل توسط spambots حفاظت می شود. برای دیدن شما نیاز به جاوا اسکریپت دارید' ); $mailer->addRecipient($recipient);
ایجاد محتوای ایمیل
حالا ما نیاز داریم که عنوان(subject) و بدنه ی ایمیل را ایجاد کرده و ست کنیم. عنوان را می توان با استفاده از تابع ()setSubject ایجاد کرد.
ساده ترین راه برای ایجاد بدنه ی ایمیل استفاده از یک متن ساده به همراه تابع ()setBody است. همچنین شما می توانید یک فایل ضمیمه را هم مشخص کنید تا ارسال شود. این کار را با استفاده از تابع ()addAttachment انجام دهید . این تابع می تواند بعنوان آرگومان، نام یک فایل، یا یک آرایه از نام های فایل را دربربگیرد:
مثال (آموزش ارسال ایمیل در جوملا)
$body = "Your body string\nin double quotes if you want to parse the \nnewlines etc"; $mailer->setSubject('Your subject string'); $mailer->setBody($body); // اختیاری. فایل ضمیمه شده $mailer->addAttachment(JPATH_COMPONENT.'/assets/document.pdf');
اگر ترجیح می دهید که ایمیل خود را به صورت html فرمت دهی کنید، باید مشخص کنید که قصد دارید ایمیل به صورت html باشد. این کار را می توان با استفاده از تابع ()isHTML انجام داد.
هنگام که ایمیل های HTML را ارسال می کنید برای اجتناب از کاراکترهای ناخواسته، باید Encoding را به base64 ست کنید.
برای اضافه کردن عکس های اختیاری می توانید از تابع ()AddEmbeddedImage استفاده کنید:
مثال (آموزش ارسال ایمیل در جوملا)
$body = '<h2>Our mail</h2>' . '<div>A message to our dear readers' . '<img src="cid:logo_id" alt="logo"/></div>'; $mailer->isHTML(true); $mailer->Encoding = 'base64'; $mailer->setBody($body); // اضافه کردن عکس اختیاری $mailer->AddEmbeddedImage( JPATH_COMPONENT.'/assets/logo128.jpg', 'logo_id', 'logo.jpg', 'base64', 'image/jpeg' );
ارسال ایمیل
ایمیل ما با استفاده از تابع ()Send ارسال میشود و در صورت موفقیت true را برمی گرداند و در صورت شکست، یک شیء JError برگردانده خواهد شد:
مثال (آموزش ارسال ایمیل در جوملا)
$send = $mailer->Send(); if ( $send !== true ) { echo 'Error sending email: ' . $send->__toString(); } else { echo 'Mail sent'; }
منابع مقاله: