100 lines
2.4 KiB
Python
100 lines
2.4 KiB
Python
import jingrow
|
|
|
|
|
|
@jingrow.whitelist()
|
|
def create_email_account(data):
|
|
service = data.get("service")
|
|
service_config = email_service_config.get(service)
|
|
if not service_config:
|
|
return "Service not supported"
|
|
|
|
try:
|
|
email_pg = jingrow.get_pg(
|
|
{
|
|
"pagetype": "Email Account",
|
|
"email_id": data.get("email_id"),
|
|
"email_account_name": data.get("email_account_name"),
|
|
"service": service,
|
|
"enable_incoming": data.get("enable_incoming"),
|
|
"enable_outgoing": data.get("enable_outgoing"),
|
|
"default_incoming": data.get("default_incoming"),
|
|
"default_outgoing": data.get("default_outgoing"),
|
|
"email_sync_option": "ALL",
|
|
"initial_sync_count": 100,
|
|
"create_contact": 1,
|
|
"track_email_status": 1,
|
|
"use_tls": 1,
|
|
"use_imap": 1,
|
|
"smtp_port": 587,
|
|
**service_config,
|
|
}
|
|
)
|
|
if service == "Jingrow Mail":
|
|
email_pg.api_key = data.get("api_key")
|
|
email_pg.api_secret = data.get("api_secret")
|
|
email_pg.jingrow_mail_site = data.get("jingrow_mail_site")
|
|
email_pg.append_to = "CRM Lead"
|
|
else:
|
|
email_pg.append("imap_folder", {"append_to": "CRM Lead", "folder_name": "INBOX"})
|
|
email_pg.password = data.get("password")
|
|
# validate whether the credentials are correct
|
|
email_pg.get_incoming_server()
|
|
|
|
# if correct credentials, save the email account
|
|
email_pg.save()
|
|
except Exception as e:
|
|
jingrow.throw(str(e))
|
|
|
|
|
|
email_service_config = {
|
|
"Jingrow Mail": {
|
|
"domain": None,
|
|
"password": None,
|
|
"awaiting_password": 0,
|
|
"ascii_encode_password": 0,
|
|
"login_id_is_different": 0,
|
|
"login_id": None,
|
|
"use_imap": 0,
|
|
"use_ssl": 0,
|
|
"validate_ssl_certificate": 0,
|
|
"use_starttls": 0,
|
|
"email_server": None,
|
|
"incoming_port": 0,
|
|
"always_use_account_email_id_as_sender": 1,
|
|
"use_tls": 0,
|
|
"use_ssl_for_outgoing": 0,
|
|
"smtp_server": None,
|
|
"smtp_port": None,
|
|
"no_smtp_authentication": 0,
|
|
},
|
|
"GMail": {
|
|
"email_server": "imap.gmail.com",
|
|
"use_ssl": 1,
|
|
"smtp_server": "smtp.gmail.com",
|
|
},
|
|
"Outlook": {
|
|
"email_server": "imap-mail.outlook.com",
|
|
"use_ssl": 1,
|
|
"smtp_server": "smtp-mail.outlook.com",
|
|
},
|
|
"Sendgrid": {
|
|
"smtp_server": "smtp.sendgrid.net",
|
|
"smtp_port": 587,
|
|
},
|
|
"SparkPost": {
|
|
"smtp_server": "smtp.sparkpostmail.com",
|
|
},
|
|
"Yahoo": {
|
|
"email_server": "imap.mail.yahoo.com",
|
|
"use_ssl": 1,
|
|
"smtp_server": "smtp.mail.yahoo.com",
|
|
"smtp_port": 587,
|
|
},
|
|
"Yandex": {
|
|
"email_server": "imap.yandex.com",
|
|
"use_ssl": 1,
|
|
"smtp_server": "smtp.yandex.com",
|
|
"smtp_port": 587,
|
|
},
|
|
}
|