Mail checks it - * settingsMailServerCheck()). Microsoft 365 and Google Workspace sign in with * an app registered with them, so those are set up in Admin > Mail; with one * in use, this step keeps it and asks only for the address. */ defined('FROM_GETTING_STARTED') || die("Direct file access is not allowed"); $gs_mail = mysqli_fetch_assoc(mysqli_query($mysqli, "SELECT config_smtp_provider, config_smtp_host, config_smtp_port, config_smtp_encryption, config_smtp_username, config_smtp_password, config_imap_provider, config_imap_host, config_imap_port, config_imap_encryption, config_imap_username, config_imap_password, config_mail_from_email, config_mail_from_name, config_ticket_from_email, config_ticket_email_parse FROM settings WHERE company_id = 1")) ?: []; $gs_mail_oauth = in_array($gs_mail['config_smtp_provider'] ?? '', ['google_oauth', 'microsoft_oauth'], true); $gs_encryption = function ($starttls_port, $ssl_port) { return ['tls' => "STARTTLS - usually port $starttls_port", 'ssl' => "SSL/TLS - usually port $ssl_port", '' => 'None']; }; $gs_secret = function ($saved, $empty) { return trim((string) $saved) !== '' ? 'Saved - type a new one to replace it' : $empty; }; $gs_parse = intval($gs_mail['config_ticket_email_parse'] ?? 0) === 1; ?>
Email goes out through , set up in Admin > Mail.

Sending

Your mail host's SMTP server, as its setup guide gives it. Microsoft 365 or Google Workspace sign in with an app you register with them instead - set that up in Admin > Mail, then come back.

'fa-server', 'label' => 'Server', 'required' => true, 'maxlength' => 200, 'placeholder' => 'smtp.example.com']) ?>
'fa-plug', 'type' => 'number', 'label' => 'Port', 'required' => true, 'min' => 1, 'max' => 65535, 'inputmode' => 'numeric']) ?>
'fa-lock', 'label' => 'Encryption']) ?>
'fa-user', 'label' => 'Username', 'maxlength' => 200, 'placeholder' => "Usually the mailbox's own address", 'autocomplete' => 'off']) ?>
'fa-key', 'type' => 'password', 'label' => 'Password', 'maxlength' => 200, 'autocomplete' => 'new-password', 'placeholder' => $gs_secret($gs_mail['config_smtp_password'] ?? '', 'Or an app password')]) ?>

Sent as

'fa-envelope', 'type' => 'email', 'label' => 'From address', 'required' => true, 'maxlength' => 200, 'placeholder' => 'help@example.com']) ?>
'fa-signature', 'label' => 'From name', 'maxlength' => 200]) ?>

Invoices, quotes and ticket emails come from it too, until you give them their own in Admin > Mail.

'gsTicketParse', 'label' => 'Turn email to a support mailbox into tickets', 'data' => ['gs-reveal' => 'gsImap'], 'help' => 'ITFlow reads the mailbox every minute: a new email is a new ticket, a reply goes on its ticket.' . (trim((string) ($gs_mail['config_ticket_from_email'] ?? '')) === '' ? ' Ticket emails then come from this address.' : '')]) ?>
>
'fa-server', 'label' => 'IMAP server', 'maxlength' => 200, 'placeholder' => 'imap.example.com']) ?>
'fa-plug', 'type' => 'number', 'label' => 'Port', 'min' => 1, 'max' => 65535, 'inputmode' => 'numeric']) ?>
'fa-lock', 'label' => 'Encryption']) ?>
'fa-inbox', 'type' => 'email', 'label' => 'Support mailbox', 'maxlength' => 200, 'placeholder' => 'support@example.com', 'autocomplete' => 'off']) ?>
'fa-key', 'type' => 'password', 'label' => 'Its password', 'maxlength' => 200, 'autocomplete' => 'new-password', 'placeholder' => $gs_secret($gs_mail['config_imap_password'] ?? '', 'Or an app password')]) ?>