CoreInto

Email

CoreInto sends every email it needs, from the welcome message to the overdue notices and the staff notices, from a set of templates.

CoreInto administrator guide: Email overview with the main sections of the article

CoreInto sends every email it needs, from the welcome message to the overdue notices and the staff notices, from a set of templates. This chapter covers how email leaves the server (the server's mail program or an SMTP server), the Mail tab of General Settings, the queue that sends mail after the page is done, Settings > Email Templates with every template CoreInto comes with, the Email Message Log, a client's email history, emails staff write to one client, and mass messages to every client matching a search.

How an email is sent

  1. Something happens: a client registers, an invoice is created, a ticket is answered.
  2. CoreInto takes the template for that event, fills in its merge fields, wraps it in your header, signature and footer, and writes the finished email to the email log with the status Waiting.
  3. The email is put on the job queue. The queue is worked as soon as the page that caused it has been sent to the browser (on PHP-FPM and LiteSpeed the visitor does not wait for the mail server), and again by the automation task jobs.
  4. If the mail server refuses or cannot be reached, the email stays in the queue and is tried again after 2, 8, 18, 32 and 50 minutes. After six attempts it is marked Failed, with the last error shown in the log.

Nothing waits on the mail server inside a page, so a slow or broken mail server never stops a client from ordering or paying.

The server's mail program or SMTP

General Settings, tab Mail, "Send email with" offers two ways:

ChoiceWhat it does
This server's mail programHands each email to the sendmail program of the web server. Nothing to set up; this is what most shared hosting accounts use. Delivery depends on the host's mail set-up and reputation.
An SMTP serverConnects to the mail server you name with a username and password. Use this for a mail service such as your own mail host or a transactional email provider.

For SMTP fill in the host, port (587 by default), security (STARTTLS, TLS from the start, or none for a server on the same machine), username and password. The password is stored encrypted and is never shown again once saved.

Testing the settings

Settings > Email Templates has a card "Test the mail settings" at the top. It shows how email is sent now (the server's mail program, or SMTP with the host) and whether sending is turned off. Type an address and press Send Test: the test message is sent straight away, not through the queue, and the page shows what the mail server answered. "The mail server accepted the test email" means the server took it; check that it arrived and is not in spam. A refusal shows the server's error text so you can correct the settings. Test emails are written to the activity log, not to the email log.

The Mail tab (General Settings)

SettingWhat it does
Send email withThe server's mail program, or an SMTP server (see above).
SMTP host, SMTP port, SMTP security, SMTP username, SMTP passwordThe SMTP connection. The password is stored encrypted.
Sender nameThe name emails come from. Empty means the company name.
Sender addressThe address emails come from, and the address replies go to unless a template or a support department says otherwise.
SignaturePlain text added at the end of every client email, under the message. Staff notices do not carry it.
Header of every client email (HTML)Shown above the message. Empty means your logo (Logo address on the General tab), or the company name when there is no logo.
Footer of every client email (HTML)Shown under the message. Empty means the company name and a link to the client area.
Email style (CSS)Replaces the built-in style of the emails. Leave empty to keep the built-in look.
Send a blind copy of every email toOne or more addresses that get a Bcc copy of every client email. Staff notices are not copied.
Department for the contact formListed for the contact form; messages from the contact form go to the address below, not to a department.
Contact form messages go toThe address that receives contact form messages. Empty means the company email address.
Show the contact formShows the Contact Us page and its link in the footer.
Do not send any emailFor testing. Every email is written to the log with the status Not sent and the reason "Sending email is turned off in General Settings". Nothing leaves the server.

Links inside emails (the client area, an invoice, a ticket) use the site address from the installation and the Address style setting on the General tab, so they work in both address styles.

Settings > Email Templates

The page lists every template, grouped by type: General, Users and sign-in, Products and services, Domains, Invoices and payments, Support, Affiliates and Staff notices. Each row shows the title staff see, the subject line, and badges: "changed" when you have edited a built-in text, "made by staff" for your own templates and "not sent" for a template that is turned off. The Turn Off and Turn On buttons on the right switch a template without opening it.

A client can turn off every type except "Users and sign-in" under Account Details in the client area (when the setting "Clients may choose which kinds of email they receive" is on), and staff can do the same on the client's Profile tab. Password, sign-in and email-address messages are always sent.

The editor

Open a template to edit it. The page has:

  • Subject and Message (HTML). Your header, signature and footer are added around the message when it is sent, so write only the body. A warning at the top lists any merge field in the text that is not known for this email; it would come out empty.
  • A list of merge fields on the right. Click one to insert it where the cursor is.
  • "Sender, copies and format": a sender name and address for this template only (empty means the ones in General Settings), Copy to (Cc) and Blind copy to (Bcc) addresses separated by commas (merge fields such as {{client_email}} are allowed), "Send as plain text only" (no HTML part is made) and "Do not send this email".
  • Send Me a Test Copy: queues the template, filled with example details (Sara Khan of Example Traders, invoice 2026-0042 and so on), to your own staff email address with "[Test]" in front of the subject. The result is in the email log.
  • Reset to Default: shown on a built-in template you have changed. It throws your text away and brings back the text CoreInto comes with.
  • Delete: only on templates made by staff. Built-in templates cannot be deleted, only turned off.
  • Preview with example details: the saved version, filled with the same example values, shown in a frame under the form. Save first to see a change.

Built-in templates keep their title and type; you change the subject, the message and the sending options. Templates made by staff can also have their title changed. Saving needs the permission "edit email templates"; without it the page is read-only.

Merge fields

A merge field is written {{name}} and is replaced by the value when the email is made. Values are escaped, so text a client typed cannot break the email. Fields whose name ends in _html (such as {{invoice_items_html}}) carry ready-made HTML and are inserted as they are. Two blocks let text depend on a field:

{{#if suspend_reason}}Reason: {{suspend_reason}}{{else}}No reason was given.{{/if}}
{{#unless auto_renew}}Automatic renewal is off.{{/unless}}

{{#if}} shows its text when the field has a value (and is not 0); {{#unless}} shows it when the field is empty. Unknown fields become empty text. Templates run no code.

Every client email can use these fields: company_name, company_url, client_area_url, date, client_id, client_first_name, client_last_name, client_name (the company when there is one, else the person's name), client_company, client_email. Staff notices have company_name, company_url, client_area_url and date, plus the client fields when they are about a client. The tables below list the extra fields of each template.

Custom templates

New Template makes a template of your own. Choose the type (any except Staff notices), a title, a subject and the message. The template gets a name made from its title (such as custom_renewal_offer). A custom template is not sent by any event; staff send it by hand from a client's page (Send Email, "Use an email template") as long as it is not turned off. It has the common client fields.

Disabling a template

Tick "Do not send this email" in the editor, or press Turn Off in the list. The event still happens (the invoice is still created, the service is still suspended); only the email is skipped. Nothing is written to the email log for a skipped email.

Attachments

The editor has no attachment field. Attachments are added by CoreInto itself: with the Invoices setting "Attach PDF invoices to emails" on, the invoice PDF is attached to the new-invoice email, the reminder, the three overdue notices and the payment-received email (the files are kept for 90 days under storage/attachments/pdf). Quote emails carry a link to the quote, not a PDF. The email log entry lists the attachments of an email.

CC and BCC

Three things add copies:

  • The template's own Cc and Bcc fields (see the editor).
  • Contacts of the client who asked for copies of this type of email (Contacts tab of the client, "Copies of emails"). The billing contact always gets a copy of invoice emails. Contacts never get copies of "Users and sign-in" emails.
  • The Mail tab's "Send a blind copy of every email to", for every client email.

Support ticket emails are sent from the department's address with the reply-to set to it, so a reply from the client lands in the department's mailbox.

Templates and languages

Each template has a default text and, when more than one interface language is installed (see Languages), one version per language. The template's page shows a tab for the default text and a tab for each language. Open a language's tab, write the subject and message, and save: that makes the version. Until a version exists the tab shows the default text to start from, and clients in that language receive the default text. Remove This Version takes a language version away. Turning a template off stops every version of it; the preview and Send Me a Test Copy follow the tab you are on.

The client's language (the Profile tab in the admin area, or Account Details in the client area) decides which version they receive. The merge fields themselves (dates, amounts) follow your date format and the client's currency.

Every template CoreInto comes with

Dates in the tables are examples of what the fields hold. All templates below, except the staff notices, also have the common client fields.

General

NameTitleSent whenExtra fields
client_signupWelcome after sign-upA client registers, orders as a new client, or staff add a client with "Send the welcome email" ticked. Staff can also send it by hand.none
order_confirmationOrder receivedAn order is placed in the store or by staff.order_number, order_date, order_items_html, order_total, invoice_number, payment_method
quote_deliveryQuote sent to clientStaff deliver a quote.quote_number, quote_subject, quote_items_html, quote_total, quote_valid_until, quote_url
card_expiringSaved card about to expireThe daily task card-expiry-notices finds a kept card near its expiry. Staff can also send it by hand.card_type, card_last4, card_expiry

Users and sign-in

These go to one person (a user), not to the account, and cannot be turned off by the client.

NameTitleSent whenExtra fields
email_verifyConfirm email addressA user registers or changes the address they sign in with, when "Ask new users to confirm their email address" is on; also from "Send it again" in the client area. The link works for 48 hours.user_first_name, user_email, verify_url, verify_hours
password_resetPassword reset linkForgotten-password form (link valid for 60 minutes), staff "Email a Password Reset Link" (24 hours), or a new client added by staff without a password (7 days).user_first_name, user_email, reset_url, reset_minutes, ip_address
password_changedPassword changedA password was changed, by the user or through a reset link.user_first_name, user_email, ip_address
user_inviteInvitation to an accountSomeone without a sign-in is invited to an account by its owner, another user or staff. The link works for 7 days.inviter_name, invite_url, invite_expires
email_changedEmail address changedA user's sign-in address was changed, by the user or by staff. It goes to the old address.user_first_name, user_email, old_email

Products and services

NameTitleSent whenExtra fields
hosting_welcomeNew hosting account detailsA hosting account is created on a server.product_name, service_domain, service_username, service_password, panel_url, server_hostname, server_ip, nameservers_html, next_due_date, recurring_amount, billing_cycle
server_welcomeNew server detailsA server product is set up.product_name, service_domain, service_ip, service_ips, service_username, service_password, panel_url, next_due_date, recurring_amount, billing_cycle
service_welcomeNew service (other products)A product without a server module becomes active.product_name, service_domain, next_due_date, recurring_amount, billing_cycle
license_welcomeNew licence keyA licence product is set up (Licensing Manager).product_name, license_key, next_due_date, recurring_amount, billing_cycle
service_suspendedService suspendedA service is suspended, by the daily run or by staff.product_name, service_domain, suspend_reason, invoice_number
service_unsuspendedService back in useA suspension is lifted.product_name, service_domain
service_terminatedService closedA service is terminated.product_name, service_domain
service_upgradedUpgrade or downgrade doneA change of product or billing term is carried out.product_name, old_product_name, service_domain, recurring_amount, next_due_date
cancellation_receivedCancellation request receivedA client asks to cancel a service.product_name, service_domain, immediate, next_due_date, cancel_reason

Domains

NameTitleSent whenExtra fields
domain_registeredDomain registeredThe registrar confirms a registration.domain, years, expiry_date, nameservers_html
domain_transfer_startedDomain transfer startedA transfer is sent to the registrar.domain
domain_transfer_doneDomain transfer finishedThe transfer completes.domain, expiry_date
domain_transfer_failedDomain transfer did not go throughThe registrar refuses or the transfer fails.domain, reason
domain_renewedDomain renewedThe registrar confirms a renewal.domain, years, expiry_date
domain_renewal_noticeDomain renewal reminderThe task domain-renewal-notices, on the days set in Automation Settings (before expiry).domain, expiry_date, days_left, auto_renew, renewal_price
domain_expiredDomain expiredA notice day after expiry (a negative number in the renewal notice days).domain, expiry_date
domain_epp_codeDomain transfer codeThe client asks for the transfer code on the domain's page.domain, epp_code
domain_documents_neededDocuments needed for a domainA domain whose extension needs documents is ordered.domain, documents_html

Invoices and payments

NameTitleSent whenExtra fields
invoice_createdNew invoiceAn invoice is created and sent (renewals by the daily run, orders, quotes accepted, staff "Send"). The PDF is attached to this and the other invoice emails when PDF invoices are on.invoice_number, invoice_date, invoice_due_date, invoice_total, invoice_balance, invoice_items_html, payment_method, invoice_url
invoice_reminderPayment reminder (before due date)The task invoice-reminders, on the reminder days before the due date.invoice_number, invoice_due_date, invoice_balance, invoice_url, payment_method
invoice_overdue_1First overdue noticeThe first overdue day in Automation Settings. Skipped for clients with "No overdue notices".invoice_number, invoice_due_date, invoice_balance, invoice_url
invoice_overdue_2Second overdue noticeThe second overdue day.as above
invoice_overdue_3Third overdue noticeThe third overdue day.as above
payment_receivedPayment receivedA payment is recorded against an invoice (gateway, kept card or staff).invoice_number, payment_amount, payment_method, payment_date, transaction_id, invoice_balance_left, invoice_url
payment_failedAutomatic payment failedCharging a kept card fails.invoice_number, invoice_balance, invoice_url, failure_reason
refund_issuedRefund issuedStaff refund a payment.invoice_number, refund_amount, refund_to_credit
credit_noteCredit note issuedStaff issue a credit note.note_number, note_total, invoice_number, note_items_html

Support

Support emails are sent from the department's address.

NameTitleSent whenExtra fields
ticket_openedTicket received (automatic reply)A ticket is opened by a client, a guest or by email.ticket_number, ticket_subject, ticket_department, ticket_priority, ticket_url, ticket_message_html
ticket_replyStaff reply to a ticketStaff answer a ticket.ticket_number, ticket_subject, ticket_status, ticket_department, ticket_url, ticket_message_html, staff_name
ticket_closedTicket closed for no replyThe automatic close after the hours set in Automation Settings.ticket_number, ticket_subject, ticket_url
ticket_feedbackFeedback on a closed ticketA ticket is closed and feedback is asked for.ticket_number, ticket_subject, feedback_url
ticket_not_acceptedEmail ticket not acceptedAn email to a department could not become a ticket (unknown sender, spam filter, limit reached).ticket_subject, department_email, reason

Affiliates

NameTitleSent whenExtra fields
affiliate_welcomeAffiliate account openedA client joins the affiliate programme or staff activate them.affiliate_link, commission_rate
affiliate_reportMonthly affiliate reportThe monthly affiliate-reports task, when "Send affiliates a monthly report" is on.month, visits, signups, earned, balance

Staff notices

Staff notices go to every enabled administrator whose role receives that kind of notice (system, account or support notices, chosen on the role), in one email. They are not written to a client's email history, and clients cannot turn them off. New templates of this type cannot be made. Each has admin_url, a link to the record in the admin area, where noted.

NameTitleSent whenExtra fields
admin_new_clientNew client signed upA client registers (account notices).client_country, ip_address, admin_url
admin_new_orderNew order placedAn order is placed (account notices).order_number, order_total, payment_method, order_items_html, fraud_result, ip_address, admin_url
admin_payment_receivedPayment receivedA payment comes in (account notices).payment_amount, payment_method, invoice_number, transaction_id, admin_url
admin_new_ticketNew ticketA ticket is opened.ticket_number, ticket_subject, ticket_department, ticket_priority, ticket_message_html, admin_url
admin_ticket_replyClient replied to a ticketA client or guest replies.ticket_number, ticket_subject, ticket_message_html, admin_url
admin_ticket_assignedTicket assigned to youA ticket is assigned to a staff member; sent to that person.ticket_number, ticket_subject, assigned_by, admin_url
admin_cancellationCancellation requestedA client asks to cancel a service.product_name, service_domain, immediate, cancel_reason, admin_url
admin_module_failedAutomatic action failedA server or registrar command fails (system notices).action, item, error, admin_url
admin_domain_taskDomain needs staff actionA domain needs manual work, for example an extension registered by staff (system notices).domain, task, details, admin_url
admin_quote_acceptedQuote acceptedA client accepts a quote online.quote_number, quote_total, admin_url
admin_daily_reportDaily automation reportThe daily run finishes (system notices).report_html
admin_client_changedClient changed their detailsA client changes their profile, when "Email staff when a client changes their details" is on.changed_fields, user_email, ip_address, admin_url
admin_contact_formContact form messageThe Contact Us form is sent; goes to the contact address with the sender as reply-to.contact_name, contact_email, contact_subject, contact_message_html, ip_address
admin_password_resetStaff password reset linkA staff member uses "forgotten password" on the admin sign-in page.staff_first_name, staff_username, reset_url, reset_minutes, ip_address

The Email Message Log

Utilities > Email Message Log (/admin/logs/email) lists every email CoreInto has made, newest first, with the date it was queued, the recipient, the subject and the status:

StatusMeaning
SentThe mail server accepted it.
WaitingIn the queue; it is sent at the end of the request or by the jobs task, and after a failure it is retried.
FailedSix attempts failed. Hover over the badge, or open the entry, to read the mail server's error.
Not sent"Do not send any email" was on when the email was made.

Filter by recipient or subject and by status. Open an entry to see the status with the time it was sent and the number of attempts, the error if any, when it was queued, From, To, Cc and Bcc, the client it belongs to, the template name, the attachments, and the message itself. The message is shown in a sandboxed frame with its own strict content policy, so stored HTML cannot run scripts or load content from outside.

Send Again queues a copy of the email to the same recipients. It makes a new log entry, so the original stays as it was; the action is written to the activity log.

Seeing the log needs the permission "email log".

A client's email history

Each client's page has an Emails tab (Clients > View/Search Clients, open the client, Emails) that lists the emails sent to that account: date, subject, recipient and status, newest first, with links to the log entries. Staff notices about the client are not listed there, because they went to staff.

Clients see their own history under Email History in the client area (/client/emails): the date and subject of each email, and the message when they open one. Emails marked Not sent are hidden from clients. A user of the account needs the permission "See emails sent" to open the page.

The client's data export (Export Data on the summary) includes the date, subject, recipient and status of every email sent to the account.

Emails written by staff to one client

On a client's summary, Send Email opens a page with two choices:

  • Use an email template: the welcome email, the saved-card notice, and every template made by staff that is turned on. The template is filled with the client's details and sent to the account's email address, with copies to the contacts who asked for that type. If the template is off or the client turned that type of email off, nothing is sent and the page says so.
  • Write a message: a subject and a plain-text message. A blank line starts a new paragraph. The company signature is added at the end. Merge fields work in both the subject and the text; the page lists the ones available (client_first_name, client_name, client_company, client_email, company_name, client_area_url and the rest of the common fields). The message is sent as a general email, wrapped in your header and footer.

Both are written to the email log with the client's number, so they show on the Emails tab and in the client's Email History, and the action is recorded in the activity log. Sending needs the client summary permission.

Mass messages

Clients > View/Search Clients has a Mass Message button (Message These Clients when a search is active, which carries the search over). The page /admin/clients/mass-mail has two parts:

  1. Who receives it: the same filters as the clients list, including the advanced ones (see Clients). Count Clients shows how many match. Closed accounts are never included.
  2. The message: a subject and a plain-text message with merge fields (client_first_name, client_last_name, client_name, client_company, client_email, company_name, client_area_url), and the tick box "Only clients who agreed to marketing email". Leave it ticked for news and offers; untick it for a service notice every client must receive.

Clients who turned off general emails are always skipped. Each client gets their own email; nobody sees the other recipients. After Send Message the emails are queued and you are taken to the Email Message Log; the result ("queued for 240 clients; 12 turned this kind of email off") is shown at the top and written to the activity log. The message is up to 50,000 characters. Sending needs the permission "mass mail".

For messages sent automatically a set number of days after sign-up, after an order or before a due date, see the Email Marketer in Reports and utilities.

Frequently asked questions

What does "Email" cover in CoreInto?

CoreInto sends every email it needs, from the welcome message to the overdue notices and the staff notices, from a set of templates. CoreInto sends every email it needs, from the welcome message to the overdue notices and the staff notices, from a set of templates. This chapter covers how email leaves the server (the server's mail program or an SMTP server), the Mail tab of General Settings, the queue that sends mail after the page is done, Settings > Email Templates with every template CoreInto comes with, the Email Message Log, a client's email history, emails staff write to one client, and mass messages to every client matching a search.

Where do I find more help?

Use the Help button on this site, browse the Administrator guide on coreinto.com, or submit a ticket at https://system.coreinto.com/contact with your panel version and the steps you tried.

Submit a ticket