187 lines
4.8 KiB
JavaScript
187 lines
4.8 KiB
JavaScript
import { validateEmail } from '../../utils'
|
|
|
|
const LogoGmail = '/images/gmail.png'
|
|
const LogoOutlook = '/images/outlook.png'
|
|
const LogoSendgrid = '/images/sendgrid.png'
|
|
const LogoSparkpost = '/images/sparkpost.webp'
|
|
const LogoYahoo = '/images/yahoo.png'
|
|
const LogoYandex = '/images/yandex.png'
|
|
const LogoJingrowMail = '/images/jingrow-mail.svg'
|
|
|
|
const fixedFields = [
|
|
{
|
|
label: __('Account Name'),
|
|
name: 'email_account_name',
|
|
type: 'text',
|
|
placeholder: __('Support / Sales'),
|
|
},
|
|
{
|
|
label: 'Email ID',
|
|
name: 'email_id',
|
|
type: 'email',
|
|
placeholder: 'johndoe@example.com',
|
|
},
|
|
]
|
|
|
|
export const incomingOutgoingFields = [
|
|
{
|
|
label: __('Enable Incoming'),
|
|
name: 'enable_incoming',
|
|
type: 'checkbox',
|
|
description: __(
|
|
'If enabled, records can be created from the incoming emails on this account.',
|
|
),
|
|
},
|
|
{
|
|
label: __('Enable Outgoing'),
|
|
name: 'enable_outgoing',
|
|
type: 'checkbox',
|
|
description: __(
|
|
'If enabled, outgoing emails can be sent from this account.',
|
|
),
|
|
},
|
|
{
|
|
label: __('Default Incoming'),
|
|
name: 'default_incoming',
|
|
type: 'checkbox',
|
|
description: __(
|
|
'If enabled, all replies to your company (eg: replies@yourcomany.com) will come to this account. Note: Only one account can be default incoming.',
|
|
),
|
|
},
|
|
{
|
|
label: __('Default Outgoing'),
|
|
name: 'default_outgoing',
|
|
type: 'checkbox',
|
|
description: __(
|
|
'If enabled, all outgoing emails will be sent from this account. Note: Only one account can be default outgoing.',
|
|
),
|
|
},
|
|
]
|
|
|
|
export const popularProviderFields = [
|
|
...fixedFields,
|
|
{
|
|
label: __('Password'),
|
|
name: 'password',
|
|
type: 'password',
|
|
placeholder: '********',
|
|
},
|
|
]
|
|
|
|
export const customProviderFields = [
|
|
...fixedFields,
|
|
{
|
|
label: 'Jingrow Mail Site',
|
|
name: 'jingrow_mail_site',
|
|
type: 'text',
|
|
placeholder: 'https://jingrowmail.com',
|
|
},
|
|
{
|
|
label: 'API Key',
|
|
name: 'api_key',
|
|
type: 'text',
|
|
placeholder: '********',
|
|
},
|
|
{
|
|
label: 'API Secret',
|
|
name: 'api_secret',
|
|
type: 'password',
|
|
placeholder: '********',
|
|
},
|
|
]
|
|
|
|
export const services = [
|
|
{
|
|
name: 'GMail',
|
|
icon: LogoGmail,
|
|
info: __(`Setting up GMail requires you to enable two factor authentication
|
|
and app specific passwords. Read more`),
|
|
link: 'https://support.google.com/accounts/answer/185833',
|
|
custom: false,
|
|
},
|
|
{
|
|
name: 'Outlook',
|
|
icon: LogoOutlook,
|
|
info: __(`Setting up Outlook requires you to enable two factor authentication
|
|
and app specific passwords. Read more`),
|
|
link: 'https://support.microsoft.com/en-us/account-billing/how-to-get-and-use-app-passwords-5896ed9b-4263-e681-128a-a6f2979a7944',
|
|
custom: false,
|
|
},
|
|
{
|
|
name: 'Sendgrid',
|
|
icon: LogoSendgrid,
|
|
info: __(`Setting up Sendgrid requires you to enable two factor authentication
|
|
and app specific passwords. Read more `),
|
|
link: 'https://sendgrid.com/docs/ui/account-and-settings/two-factor-authentication/',
|
|
custom: false,
|
|
},
|
|
{
|
|
name: 'SparkPost',
|
|
icon: LogoSparkpost,
|
|
info: __(`Setting up SparkPost requires you to enable two factor authentication
|
|
and app specific passwords. Read more `),
|
|
link: 'https://support.sparkpost.com/docs/my-account-and-profile/enabling-two-factor-authentication',
|
|
custom: false,
|
|
},
|
|
{
|
|
name: 'Yahoo',
|
|
icon: LogoYahoo,
|
|
info: __(`Setting up Yahoo requires you to enable two factor authentication
|
|
and app specific passwords. Read more `),
|
|
link: 'https://help.yahoo.com/kb/SLN15241.html',
|
|
custom: false,
|
|
},
|
|
{
|
|
name: 'Yandex',
|
|
icon: LogoYandex,
|
|
info: __(`Setting up Yandex requires you to enable two factor authentication
|
|
and app specific passwords. Read more `),
|
|
link: 'https://yandex.com/support/id/authorization/app-passwords.html',
|
|
custom: false,
|
|
},
|
|
{
|
|
name: 'Jingrow Mail',
|
|
icon: LogoJingrowMail,
|
|
info: __(
|
|
`Setting up Jingrow Mail requires you to have an API key and API Secret of your email account. Read more `,
|
|
),
|
|
link: 'http://git.jingrow.com/jingrow/mail',
|
|
custom: true,
|
|
},
|
|
]
|
|
|
|
export const emailIcon = {
|
|
GMail: LogoGmail,
|
|
Outlook: LogoOutlook,
|
|
Sendgrid: LogoSendgrid,
|
|
SparkPost: LogoSparkpost,
|
|
Yahoo: LogoYahoo,
|
|
Yandex: LogoYandex,
|
|
'Jingrow Mail': LogoJingrowMail,
|
|
}
|
|
|
|
export function validateInputs(state, isCustom) {
|
|
if (!state.email_account_name) {
|
|
return __('Account name is required')
|
|
}
|
|
if (!state.email_id) {
|
|
return __('Email ID is required')
|
|
}
|
|
const validEmail = validateEmail(state.email_id)
|
|
if (!validEmail) {
|
|
return __('Invalid email ID')
|
|
}
|
|
if (!isCustom && !state.password) {
|
|
return __('Password is required')
|
|
}
|
|
if (isCustom) {
|
|
if (!state.api_key) {
|
|
return __('API Key is required')
|
|
}
|
|
if (!state.api_secret) {
|
|
return
|
|
}
|
|
}
|
|
return ''
|
|
}
|