Blame view

common/components/MailerComponent.php 2.48 KB
982be2a8   alex   Генерация мета те...
1
2
3
4
5
  <?php
  
  namespace common\components;
  
  use yii\base\Component;
82a18a27   alex   Mailer 1
6
7
8
9
10
  use common\models\Visit;
  use backend\models\Mail;
  use common\models\Settings;
  
  
982be2a8   alex   Генерация мета те...
11
12
13
14
  
  
  /**
   * =====================================================================================================================
82a18a27   alex   Mailer 1
15
   *      Компонент, созданный для того, чтобы обьявлять аналогичные по логике письма с 1 места
982be2a8   alex   Генерация мета те...
16
17
18
19
20
21
22
23
24
25
26
27
28
29
   * =====================================================================================================================
   */
  class MailerComponent extends Component
  {
  
  	/**
  	 * Отправляет письмо админу по backend\models\Mail если такая запись есть
  	 * ***Если запись есть, но творится вакханалия с почтовым адресом, сервер начнёт валить Exception,
  	 *  а мы пишем нашему админу, что у них там почтовые настройки есть, но некорректы
  	 *
  	 * @param $mode 1|2|3|4
  	 *  1|2|3 ==> используется для site/callback
  	 *  4     ==> site/contact
  	 */
82a18a27   alex   Mailer 1
30
  	public static function sendListToAdminAfterSubmit(int $mode, array $params = [])
982be2a8   alex   Генерация мета те...
31
  	{
3f02ce88   Anastasia   send email
32
  		
982be2a8   alex   Генерация мета те...
33
  			$time = Visit::getTimeTitles($mode);
82a18a27   alex   Mailer 1
34
  			$settings = Settings::getInstance();
0428137c   alex   Mail fix 2
35
  		$mail = Mail::findOne(1);
dd468c5e   alex   Mail fix 2
36
37
38
39
40
41
  		$moreMail = explode(';', $mail->user);
  		$setTo = [$settings->email];
  		if (!empty($moreMail)) {
  			$setTo = array_merge($setTo, $moreMail);
  		}
  
0428137c   alex   Mail fix 2
42
  
982be2a8   alex   Генерация мета те...
43
44
45
  			# если у них всё же почтовые настройки есть, НО письмо не может отправится,
  			# прокидываю сообщение об этом нам обратно
  			try {
3f02ce88   Anastasia   send email
46
  				if (!empty($settings->email)) {
14b9ed76   alex   Mail fix 3
47
48
  					$mail1 = \Yii::$app->mailer
  						->compose()
3f02ce88   Anastasia   send email
49
  						->setFrom($settings->email)
0428137c   alex   Mail fix 2
50
  						->setTo($setTo)
14b9ed76   alex   Mail fix 3
51
52
53
54
55
56
57
58
59
60
  						->setSubject('Запись на прием: обратная связь')
  						->setTextBody('Контакт пациента: :' . $params['user_data'] . "  просил перезвонить ему  " . $time);
  					if ($mail1->send() == false) {
  						\Yii::info(\Yii::$app->params['artwebAdminEmail'] . " - неполучается отправить письмо за указанным адресом", 'mail_error');
  					}
  				}
  
  
  
  
982be2a8   alex   Генерация мета те...
61
  			} catch (\Exception $e) {
bf086795   alex   Mail fix 2
62
  				\Yii::error(\Yii::$app->params['artwebAdminEmail'] . " - неполучается отправить письмо за указанным адресом", 'mail_error');
982be2a8   alex   Генерация мета те...
63
64
  			}
  
3f02ce88   Anastasia   send email
65
  		
982be2a8   alex   Генерация мета те...
66
67
68
69
  	}
  
  
  }