/** * @param $string //искомая тема * @return string //в случае успеха возвращает Тело письма */ function getBodyBySubject($subject) { $body = false; $i = 1; while ($body === false) { $attempt = 30; codecept_debug('Пытаемся получить письмо. Попытка ' . $i . ' из ' . $attempt); $msgNo = imap_search(self::__connect(), 'SUBJECT "' . $subject . '"', SE_FREE, "UTF-8"); codecept_debug($msgNo); if ($msgNo) { $body = imap_fetchbody(self::__connect(), end($msgNo), 1); } if ($i >= $attempt) { ExpectedException::throwException('3', 'Письмо не пришло в течение ' . $attempt * 6 . ' секунд.', $body); } $i += 1; sleep(6); } return $body; }
/** * @param $date * @param string $format * @return bool */ public function validateDate($date, $format = 'd.m.Y H:i:s') { if ($format == 'm.Y') { $format = 'd.' . $format; $date = '01.' . $date; } $d = \DateTime::createFromFormat($format, $date); if ($d && $d->format($format) == $date) { return true; } else { ExpectedException::throwException(12, 'Неверный формат даты. Ожидается формат: ' . $format . '. Дата в поле: ' . $date, $date); } }