2017-01-09 3 views
2

Я попытался отправить электронное письмо с помощью swiftmailer в Yii2. Я все еще новичок в этой области. Это мой основной код:Как отправить почту с помощью swiftmailer - Yii2

public function sendMail($email) 
    { 
     if ($this->validate()) { 
      $email = Yii::$app->params['adminEmail']; 
      $mailto = '[email protected]'; // need to change 
      $isi = "blablabla"; 

      Yii::$app->mailer->compose("@app/mail/layouts/html", ["content" => $isi]) 
       ->setTo($mailto) 
       ->setFrom($email) 
       ->setSubject('coba') 
       ->send(); 

      return true; 
     } 
     return false; 
    } 

В моем случае, я хочу установить в «Сетто» на основе моей usr таблицы. Поле моей usr таблицы:

id | username | manager | email   | type  | 
1 | fauzi | arie | [email protected] | user  | 
2 | arie  | rian | [email protected] | approver | 

Например, когда пользователь с ID = 1, логин, то он создает новый пост и после нажмите отправить, действие также отправить письмо пользователю с идентификатором = 2 (менеджер Fauzi) для некоторых обзоров до публикации публикуется публично. Спасибо.

+1

Вы настроили компонент почтовой программы в вашей конфигурации main.php файл правильно? – Chinmay

+0

Да, я его настроил. Если я попробовал свой код, он работает нормально. Но мне нужно получить «setTo» из поля электронной почты в таблице моего db. – Putra

ответ

0

примечания: Я предполагаю, что ваша usr таблицы имеет модель под названием User, если нет, то изменить его, чтобы соответствовать вашему коду

вы можете предоставить также массив электронной почты адреса как

->setTo(['[email protected]', '[email protected]' => 'Name Surname']) 

То, что вы хотите знаете, какие пользователи вы хотите получить, возможно, добавьте некоторые условия для activerecord и т. д.

$users = User::find()->all(); 

или

// or any condition you need in your application, this is just example 
$users = User::find()->andWhere(['type' => 'approver'])->all(); 

затем Variant #1 вы можете цикл корыта все записи

foreach ($users as $user) { 
    // you can add here some conditions for different types of users etc 
    // ... your code to send email ... 
    ->setTo([$user->email => $user->username]) 
    // or just 
    // ->setTo($user->email) 
} 

или Variant #2 вы можете получить все письма первые

$emails = \yii\helpers\ArrayHelper::getColumn($users, 'email'); 
// ... your code to send email ... 
->setTo($emails) 
// ... 

 Смежные вопросы

  • Нет связанных вопросов^_^