| 657 | return True, '' |
| 658 | |
| 659 | def send(self, title: str, message: str, severity: str = 'INFO', |
| 660 | data: Optional[Dict] = None) -> Dict[str, Any]: |
| 661 | subject = f"{self.subject_prefix} [{severity}] {title}" |
| 662 | |
| 663 | def _do_send(): |
| 664 | if self.host: |
| 665 | return self._send_smtp(subject, message, severity, data) |
| 666 | else: |
| 667 | return self._send_sendmail(subject, message, severity, data) |
| 668 | |
| 669 | return self._send_with_retry(_do_send) |
| 670 | |
| 671 | def _send_smtp(self, subject: str, body: str, severity: str, |
| 672 | data: Optional[Dict] = None) -> Tuple[int, str]: |