. */ declare(strict_types=1); namespace FireflyIII\Mail; use Exception; use Illuminate\Bus\Queueable; use Illuminate\Mail\Mailable; use Illuminate\Queue\SerializesModels; /** * Class NewIPAddressWarningMail */ class NewIPAddressWarningMail extends Mailable { use Queueable; use SerializesModels; public string $host; public string $ipAddress; public string $time; /** * OAuthTokenCreatedMail constructor. * * @param string $ipAddress */ public function __construct(string $ipAddress) { $this->ipAddress = $ipAddress; } /** * Build the message. * * @return $this */ public function build(): self { $this->time = now(config('app.timezone'))->isoFormat((string) trans('config.date_time_js')); $this->host = ''; try { $hostName = gethostbyaddr($this->ipAddress); } catch (Exception $e) { $hostName = $this->ipAddress; } if ($hostName !== $this->ipAddress) { $this->host = $hostName; } return $this ->markdown('emails.new-ip') ->subject((string) trans('email.login_from_new_ip')); } }