• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در تابع پیش فرض forgetPassWord
#1
سلام دوستان
من یک پروژه ی advanced yii ساختم که توش table های مربوط به کاربران رو ساختم . درست کار میکنه ولی عملیات پیش فرض forget pass word کار نمیکنه
یعنی ایمیل ارسال نمیکنه
تابع مربوط رو کامنت کردم و فقط توش خواستم یک ایمیل ساده ارسال کنه ولی هیچ کاری نکرد
کد پی‌اچ‌پی:
public function sendEmail()
    {
        
/* @var $user User */
        /*   $user = User::findOne([
               'status' => User::STATUS_ACTIVE,
               'email' => $this->email,
           ]);

           if ($user) {
               if (!User::isPasswordResetTokenValid($user->password_reset_token)) {
                   $user->generatePasswordResetToken();
               }

               if ($user->save()) {
                   return \Yii::$app->mailer->compose('passwordResetToken', ['user' => $user])
                       ->setFrom([\Yii::$app->params['supportEmail'] => \Yii::$app->name . ' robot'])
                       ->setTo($this->email)
                       ->setSubject('Password reset for ' . \Yii::$app->name)
                       ->send();*/
               
Yii::$app->mailer->compose()
                    ->
setFrom('from@domain.com')
                    ->
setTo('fahime.ameri@yahoo.com')
                    ->
setSubject('Message subject')
                    ->
setTextBody('Plain text content')
                    ->
setHtmlBody('<b>HTML content</b>')
                    ->
send();

return 
true;


        
    }

  پاسخ
تشکر شده توسط :
#2
سلام،
تنظیمات mailer رو بگذارید ببینیم.
از روی لوکال هاست دارین ارسال می‌کنین؟
جای دیگه این تابع ارسال ایمیل کار میکنه؟
غایب
  پاسخ
تشکر شده توسط :
#3
(۱۳۹۵ مهر ۰۵, ۰۷:۵۱ ب.ظ)Alaa نوشته: سلام،
تنظیمات mailer رو بگذارید ببینیم.
از روی لوکال هاست دارین ارسال می‌کنین؟
جای دیگه این تابع ارسال ایمیل کار میکنه؟
سلام روی لوکال هاست کار میکنم...این تابع کار نمیکنه ولی تابع
کد پی‌اچ‌پی:
$api_key Yii::$app->params['email_api_key'];//PanelEmails::EMAIL_API_KEY;
        
$mg = new Mailgun($api_key);
        
$domain Yii::$app->params['email_domain'];//PanelEmails::EMAIL_DOMAIN;

        # Now, compose and send your message.


        
$mg->sendMessage($domain, array('from'    => 'test@yadamooz.ir',
        
'to'      => $email,
        
'subject' => $subject,
        
'text' => $text,
        
'html'    => $html)); 
کاملا درست کار میکنه

تنظیمات mailer کدوم قسمت هست؟
ConfusedConfused
  پاسخ
تشکر شده توسط :
#4
تنظیمات mailer توی common/config/main-local.php هست.
شما از لوکال نمی‌تونی ایمیل بفرستی، مگر اینکه با SMTP وصل بشین به یه mail server مثل جیمیل یا هر سرور دیگه‌ای.
مثلا یه همچین حالتی باید بشه تنظیمات mailer:

کد پی‌اچ‌پی:
'mailer' => [
                
'class' => 'yii\swiftmailer\Mailer',
                
'viewPath' => '@common/mail',
                
'useFileTransport' => false,
                
'transport' => [
                    
'class' => 'Swift_SmtpTransport',
                    
'host' => '<mail server address>',
                    
'username' => '<mail username>',
                    
'password' => '<mail password>',
                    
'port' => '<mail server port>',
                    
//'encryption' => 'tls',
                
],
        ], 

اون کلاس mailgun که شما استفاده می‌کنین هم احتمالا وصل میشه به یه mail server و ارسال میکنه.
غایب
  پاسخ
تشکر شده توسط : kasbookar fahime87
#5
خیلی ممنون ....راهنمایی تون بسیار مفید واقع شد
  پاسخ
تشکر شده توسط : Alaa


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان