samsher-bentray / yii2-mailer
PHP 和 SMTP 邮件发送器
v0.0.3
2016-01-29 05:19 UTC
Requires
- yiisoft/yii2: *
This package is not auto-updated.
Last update: 2024-09-14 17:59:01 UTC
README
在 Yii2 中使用动态配置的 PHP 和 SMTP 邮件发送器
安装
安装此扩展的首选方式是通过 Composer。
运行以下命令之一
php composer.phar require --prefer-dist samsher-bentray/yii2-mailer "*"
或者
"samsher-bentray/yii2-mailer": "*"
将以下内容添加到您的 composer.json
文件的 require 部分。
配置
扩展安装完成后,将以下代码添加到您的应用程序配置中
return [ //.... 'components' => [ ... 'email' => 'samsher\mailer\Mail', ... ], ];
使用方法
扩展安装完成后,您可以在代码中使用它,如下在控制器中使用这些代码
public function actionCreate() { $model = new Email(); if ($model->load(Yii::$app->request->post())) { /*Starting configuration for smtp or other type*/ Yii::$app->email->setMailType('SMTP');//aeruement is either 'SMTP' or 'PHPMAIL' //Passing arguement for Host setting Yii::$app->email->setHost('smtp.gmail.com');// aeruement is 'smtp.gmail.com' for gmail //Passing arguement for Username setting Yii::$app->email->setUname('some email'); //Passing arguement for Password setting Yii::$app->email->setPassd('password'); //Passing arguement for Encryption Type setting Yii::$app->email->setEncType('ssl');//encryption type must either be 'ssl' or 'tls' //Passing arguement for Port setting Yii::$app->email->setServerPort('465'); port of gmail server is '465' for 'SSL' and '587' for 'TLS' /*Ending configuration for smtp or other type*/ Yii::$app->email->configSet();//note that email setting is completed only after executing this function /*Starting configuration for php mail*/ //Passing arguement to set from Yii::$app->email->setFrom('some email'); //Passing arguement to set Reply To Yii::$app->email->setReplyTo('some email'); //Passing arguement to set Return Path Yii::$app->email->setReturnPath('some email'); $to = $model->to; $subject = $model->subject; $message_body = $model->text_body; $cc = $model->cc; $bcc = $model->bcc; /*Assigning the files for attachments*/ $attachment = UploadedFile::getInstances($model,'attachment'); Yii::$app->email->SaveAttach($attachment); // Syntax Yii::$app->email->SendMail($from,$to,$subject,$message_body,$cc,$bcc,$attachment); // It is important that default mail type is PHP mail // If we want to use PHP mail ,we can call only the function // "Yii::$app->email->SendMail($from,$to,$subject,$message_body,$cc,$bcc,$attachment);" // If we want to use Smtp mail or other type, we can call the function // "Yii::$app->email->SendMail($from,$to,$subject,$message_body,$cc,$bcc,$attachment);" // only after the six setting for and running Yii::$app->email->configSet(); if (Yii::$app->email->SendMail($from,$to,$subject,$message_body,$cc,$bcc,$attachment)){ //deleting the attachment Yii::$app->email->DeleteAttach($attachments); Yii::$app->session->setFlash('success','Email sent.'); //for for wrong event. return $this->redirect(['create']); } else { Yii::$app->session->setFlash('danger','Email send not success.'); //for for wrong event. return $this->redirect(['create']); } } else{ return $this->render('create', [ 'model' => $model, ]); } }