Configuration
Here the definition of the MailgoConfig object in TypeScript (available after version 0.9.0)
MailgoConfig type
type MailgoConfig = {
mailto?: boolean; // enable mailgo for mailto, default is obviously true
tel?: boolean; // enable mailgo for tel, default is true
sms?: boolean; // enable mailgo for sms, at the moment default is false
desktop?: boolean; // enable mailgo for desktop, default true
mobile?: boolean; // enable mailgo for mobile, default true
actions?: MailgoActions; // enable/disable actions, default all trues
details?: MailgoDetails; // show/hide the modal details
dark?: boolean; // dark mode for mailgo, default false
lang?: string; // language of the modal, default is english
validateEmail?: boolean; // validate an email, default is true
validateTel?: boolean; // validate a phone number, default is true
office365?: boolean; // the particular case of Outlook link: can be outlook.live.com or outlook.office365.com, by default the first but with this parameter you can change the behaviour
showFooter?: boolean; // show the footer with a link to mailgo.dev, default true, please!
initEvent?: string; // the event which is attached the mailgo init, default DOMContentLoaded
listenerOptions?: ListenerOptions | boolean; // the options of the listener if initEvent is specified
loadCSS?: boolean; // loadCSS for mailgo, default true
};
then initialize mailgo following this definition
function mailgo(mailgoConfig?: MailgoConfig): void;
Mailgo config parameters
mailto
TYPE: boolean
DEFAULT true
Enable or not mailto links in mailgo
tel
TYPE: boolean
DEFAULT true
Enable or not tel and callto links in mailgo
sms // WIP
TYPE: boolean
DEFAULT false
Enable or not sms links in mailgo, by default it is disabled because it is WIP feature
desktop
TYPE: boolean
DEFAULT true
Enable mailgo for desktop (uses user-agent)
mobile
TYPE: boolean
DEFAULT true
Enable mailgo for mobile (uses user-agent)
actions
For actions parameter you can refer to this definition
type MailgoAction =
| "gmail"
| "outlook"
| "yahoo"
| "telegram"
| "whatsapp"
| "skype"
| "copy"
| "default"
| "custom";
type MailgoActions = {
[action in MailgoAction]: boolean;
};
DEFAULT all the values true
With this attribute you can enable/disable some actions in mailgo. By default all the values of actions are true (so enabled), but you can exclude some of them, for example with a config like
let mailgoConfig: MailgoConfig = {
actions: {
yahoo: false,
skype: false,
},
};
you are excluding Yahoo Mail and Skype. At the moment in mailgo you can exclude every actions except for copy and default, that are always enabled.
details
You can define which elements of the details (cc, bcc, subject...) appears in modal, obviously if they are defined in the link. By default all the details are shown, but you can decide it using this attribute.
type MailgoDetail = "cc" | "bcc" | "subject" | "body" | "msg";
type MailgoDetails = {
[detail in MailgoDetail]?: boolean;
};
cc, bcc, subject and body are the details for mailto, msg the detail for tel/sms.
So for example you can pass this configuration
let mailgoConfig: MailgoConfig = {
details: {
subject: false,
body: false,
},
};
if you want to hide subject and body attributes in the modal.
The details attribute works on the hiding/showing elements in the modal, not directly on parameters of the link. If you specify, for example, not to show the subject in the detail of the modal the subject will be not removed from the link, is simply doesn't appear in the modal.
dark
TYPE boolean
DEFAULT false
If specified and equal to true the mailgo dark mode is enabled for every mailgo modal in the website/page.
lang
TYPE: string
(DEFAULT en)
The language of mailgo. Default is en.
Possible values can be found in i18n.json file in the repository, under translations attribute.
The lang specified here is used only in website where is not specified lang attribute in <html> tag.
You can force the use of the lang specified using the paramter forceLang.
validateEmail
TYPE boolean
DEFAULT true
To validate or not the email address(es), if the value is not valid the modal will not appear.
validateTel
TYPE boolean
DEFAULT true
To validate or not the phone number, if the value is not valid the modal will not appear.
office365
TYPE: boolean
DEFAULT false
Enable Office365 instead of classic outlook.live.com link in Outlook action
showFooter
TYPE boolean
DEFAULT true
Show or not the footer in the modal with mailgo.dev link.
initEvent
TYPE: string
DEFAULT DOMContentLoaded
The event used to trigger mailgo. If you pass a value then a listener will be attached to the event.
Example
mailgoConfig = {
initEvent: "example-event",
};
then the code executed is this
document.addEventListener("example-event", function () {
// mailgo here is started...
});
In dist version of mailgo the event is DOMContentLoaded.
listenerOptions
TYPE: ListenerOptions or boolean
DEFAULT false
type ListenerOptions = {
capture?: boolean;
once?: boolean;
passive?: boolean;
};
The third parameter of the addEventListener, complete reference: https://developer.mozilla.org/it/docs/Web/API/Element/addEventListener.
It is used only if an initEvent is specified.
loadCSS
TYPE boolean
DEFAULT true
Load mailgo CSS. true recommended.
Mailgo configuration in window
There is the possibility to define configuration for mailgo also adding it to the window object. You can simply add (BEFORE adding mailgo.min.js) a mailgoConfig attribute to the window that follows the MailgoConfig type.
Here a simple example (in an html file)
<script>
// this object must follow the MailgoConfig type
window.mailgoConfig = {
dark: true,
showFooter: false,
};
</script>
<script src="../dist/mailgo.min.js"></script>
With this type of configuration the attribute initEvent and listenerOptions are not considered (because mailgo.min.js fires by default ad DOMContentLoaded with default ListenerOptions).
For more examples about this configuration see index.windowconfig.html in examples folder in mailgo repository.