/* * Copyright 2012 Samsung Electronics Co., Ltd * * Licensed under the Flora License, Version 1.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.tizenopensource.org/license * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "email-setting.h" #include "email-setting-defines.h" #include "email-view-setting.h" #include "email-setting-account-set.h" #define DEFAULT_SIGNATURE _("IDS_EMAIL_BODY_SENT_USING_TIZEN_MOBILE") static void _set_gmail(struct viewdata *vd); static void _set_yahoomail(struct viewdata *vd); static void _set_hotmail(struct viewdata *vd); static void _set_aol(struct viewdata *vd); static void _set_others(struct viewdata *vd); static void _set_user_name_with_email_addr(char *email_addr, char **user_name); static void _set_display_name_with_email_addr(char *email_addr, char **display_name); static void _account_info_print(email_account_t *account); void setting_set_account(struct viewdata *vd) { debug_log(""); if (!vd) { debug_log("vd is NULL"); return; } EmailSettingUGD *ugd = vd->ugd; debug_log("%d", ugd->account_info); int c = ugd->account_info; switch (c) { case GMAIL: _set_gmail(vd); break; case YAHOOMAIL: _set_yahoomail(vd); break; case HOTMAIL: _set_hotmail(vd); break; case AOL: _set_aol(vd); break; case OTHERS: _set_others(vd); break; } return; } void setting_set_account_with_server_info(email_protocol_config_t *incomming, email_protocol_config_t *outgoing, char *service_name, EmailSettingUGD *ugd) { debug_log(""); email_account_t *account = NULL; account = ugd->new_account; int preset_account = 0; int rgb = 0x006400ff; debug_log("service_name (%s)", service_name); if (!g_strcmp0(service_name, "Hotmail")) account->incoming_server_user_name = g_strdup(account->user_email_address); else _set_user_name_with_email_addr(account->user_email_address, &(account->incoming_server_user_name)); _set_display_name_with_email_addr(account->user_email_address, &(account->user_display_name)); account->reply_to_address = g_strdup(account->user_email_address); account->return_address = g_strdup(account->user_email_address); account->retrieval_mode = EMAIL_IMAP4_RETRIEVAL_MODE_ALL; /* EMAIL_IMAP4_RETRIEVAL_MODE_NEW; */ if (!g_strcmp0(service_name, "Gmail")) preset_account = GMAIL; else if (!g_strcmp0(service_name, "Hotmail")) preset_account = HOTMAIL; else if (!g_strcmp0(service_name, "Yahoo")) preset_account = YAHOOMAIL; else if (!g_strcmp0(service_name, "AOL")) preset_account = AOL; else preset_account = 0; account->auto_download_size = 1024*10; /* downloading option, 0 is subject only, 1 is text body, 2 is normal. */ account->outgoing_server_use_same_authenticator = 1; /* Specifies the 'Same as POP3' option, 0 is none, 1 is 'Same as POP3' */ account->default_mail_slot_size = 25; account->pop_before_smtp = 0; account->incoming_server_requires_apop = 0; account->options.priority = 3; account->options.keep_local_copy = 1; account->options.req_delivery_receipt = 0; account->options.req_read_receipt = 0; account->options.download_limit = 0; account->options.block_address = 1; account->options.block_subject = 1; account->options.display_name_from = NULL; account->options.reply_with_body = 1; account->options.forward_with_files = 1; account->options.add_myname_card = 0; account->options.add_signature = 1; account->options.signature = g_strdup(DEFAULT_SIGNATURE); if (!g_strcmp0(service_name, "Gmail")) account->logo_icon_path = g_strdup(ACCOUNT_ICON_GMAIL); else if (!g_strcmp0(service_name, "Hotmail")) account->logo_icon_path = g_strdup(ACCOUNT_ICON_HOTMAIL); else if (!g_strcmp0(service_name, "Yahoo")) account->logo_icon_path = g_strdup(ACCOUNT_ICON_YAHOO); else if (!g_strcmp0(service_name, "AOL")) account->logo_icon_path = g_strdup(ACCOUNT_ICON_AOL); else account->logo_icon_path = g_strdup(ACCOUNT_ICON_OTHERS); account->outgoing_server_type = EMAIL_SERVER_TYPE_SMTP; account->outgoing_server_need_authentication = 1; account->incoming_server_type = incomming->protocol_type; account->incoming_server_address = g_strdup(incomming->server_addr); account->incoming_server_port_number = incomming->port_number; account->incoming_server_secure_connection = incomming->security_type; account->outgoing_server_address = g_strdup(outgoing->server_addr); account->outgoing_server_port_number = outgoing->port_number; account->outgoing_server_secure_connection = outgoing->security_type; account->outgoing_server_user_name = g_strdup(account->user_display_name); account->outgoing_server_password = g_strdup(account->incoming_server_password); /*user data set*/ account_user_data_t data; data.index_color = rgb; data.is_preset_account = preset_account; data.show_images = 1; data.send_read_report = 0; data.pop3_deleting_option = 0; int data_len = sizeof(account_user_data_t); account->user_data = calloc(1, data_len); memcpy(account->user_data, (void *)&data, data_len); account->user_data_length = data_len; _account_info_print(account); } static void _set_gmail(struct viewdata *vd) { debug_log(""); if (!vd) { debug_log("vd is NULL"); return; } EmailSettingUGD *ugd = vd->ugd; email_account_t *account = NULL; account = ugd->new_account; int rgb = 0x0000ffff; _set_user_name_with_email_addr(account->user_email_address, &(account->incoming_server_user_name)); _set_display_name_with_email_addr(account->user_email_address, &(account->user_display_name)); account->account_name = g_strdup(dgettext("sys_string", "IDS_COM_BODY_GOOGLE")); account->reply_to_address = g_strdup(account->user_email_address); account->return_address = g_strdup(account->user_email_address); account->retrieval_mode = EMAIL_IMAP4_RETRIEVAL_MODE_ALL; /* EMAIL_IMAP4_RETRIEVAL_MODE_NEW; */ account->auto_download_size = 1024*10; /* downloading option, 0 is subject only, 1 is text body, 2 is normal. */ account->outgoing_server_use_same_authenticator = 1; /* Specifies the 'Same as POP3' option, 0 is none, 1 is 'Same as POP3' */ account->default_mail_slot_size = 25; account->pop_before_smtp = 0; account->incoming_server_requires_apop = 0; account->options.priority = 3; account->options.keep_local_copy = 1; account->options.req_delivery_receipt = 0; account->options.req_read_receipt = 0; account->options.download_limit = 0; account->options.block_address = 1; account->options.block_subject = 1; account->options.display_name_from = NULL; account->options.reply_with_body = 1; account->options.forward_with_files = 1; account->options.add_myname_card = 0; account->options.add_signature = 1; account->options.signature = g_strdup(DEFAULT_SIGNATURE); account->logo_icon_path = g_strdup(ACCOUNT_ICON_GMAIL); account->outgoing_server_type = EMAIL_SERVER_TYPE_SMTP; account->outgoing_server_need_authentication = 1; /*account->user_display_name = g_strdup(account->user_display_name); account->user_email_address = g_strdup("@gmail.com"); account->incoming_server_password = g_strdup();*/ vconf_get_int("file/private/com.samsung.email/gmail_receiving_type", (int *)&(account->incoming_server_type)); vconf_get_int("file/private/com.samsung.email/gmail_receiving_port", &(account->incoming_server_port_number)); vconf_get_int("file/private/com.samsung.email/gmail_receiving_ssl", &(account->incoming_server_secure_connection)); account->incoming_server_address = vconf_get_str("file/private/com.samsung.email/gmail_receiving_address"); vconf_get_int("file/private/com.samsung.email/gmail_sending_port", &(account->outgoing_server_port_number)); vconf_get_int("file/private/com.samsung.email/gmail_sending_ssl", &(account->outgoing_server_secure_connection)); account->outgoing_server_address = vconf_get_str("file/private/com.samsung.email/gmail_sending_address"); account->outgoing_server_user_name = g_strdup(account->incoming_server_user_name); account->outgoing_server_password = g_strdup(account->incoming_server_password); /*user data set*/ account_user_data_t data; data.index_color = rgb; data.is_preset_account = GMAIL; data.show_images = 1; data.send_read_report = 0; data.pop3_deleting_option = 0; int data_len = sizeof(account_user_data_t); account->user_data = calloc(1, data_len); memcpy(account->user_data, (void *)&data, data_len); account->user_data_length = data_len; _account_info_print(account); } static void _set_yahoomail(struct viewdata *vd) { debug_log(""); if (!vd) { debug_log("vd is NULL"); return; } EmailSettingUGD *ugd = vd->ugd; email_account_t *account = NULL; account = ugd->new_account; int rgb = 0xdc143cff; _set_user_name_with_email_addr(account->user_email_address, &(account->incoming_server_user_name)); _set_display_name_with_email_addr(account->user_email_address, &(account->user_display_name)); account->account_name = g_strdup(_("IDS_EMAIL_BODY_YAHOO_E_MAIL")); account->reply_to_address = g_strdup(account->user_email_address); account->return_address = g_strdup(account->user_email_address); account->retrieval_mode = EMAIL_IMAP4_RETRIEVAL_MODE_ALL; /* EMAIL_IMAP4_RETRIEVAL_MODE_NEW; */ account->auto_download_size = 1024*10; /* downloading option, 0 is subject only, 1 is text body, 2 is normal. */ account->outgoing_server_use_same_authenticator = 1; /* Specifies the 'Same as POP3' option, 0 is none, 1 is 'Same as POP3' */ account->default_mail_slot_size = 25; account->pop_before_smtp = 0; account->incoming_server_requires_apop = 0; account->options.priority = 3; account->options.keep_local_copy = 1; account->options.req_delivery_receipt = 0; account->options.req_read_receipt = 0; account->options.download_limit = 0; account->options.block_address = 1; account->options.block_subject = 1; account->options.display_name_from = NULL; account->options.reply_with_body = 1; account->options.forward_with_files = 1; account->options.add_myname_card = 0; account->options.add_signature = 1; account->options.signature = g_strdup(DEFAULT_SIGNATURE); account->logo_icon_path = g_strdup(ACCOUNT_ICON_YAHOO); account->outgoing_server_type = EMAIL_SERVER_TYPE_SMTP; account->outgoing_server_need_authentication = 1; /*account->user_display_name = g_strdup(account->user_display_name); account->user_email_address = g_strdup("@yahoo.com"); account->incoming_server_password = g_strdup();*/ vconf_get_int("file/private/com.samsung.email/yahoo_receiving_type", (int *)&(account->incoming_server_type)); vconf_get_int("file/private/com.samsung.email/yahoo_receiving_port", &(account->incoming_server_port_number)); vconf_get_int("file/private/com.samsung.email/yahoo_receiving_ssl", &(account->incoming_server_secure_connection)); account->incoming_server_address = vconf_get_str("file/private/com.samsung.email/yahoo_receiving_address"); account->outgoing_server_address = vconf_get_str("file/private/com.samsung.email/yahoo_sending_address"); vconf_get_int("file/private/com.samsung.email/yahoo_sending_port", &(account->outgoing_server_port_number)); vconf_get_int("file/private/com.samsung.email/yahoo_sending_ssl", &(account->outgoing_server_secure_connection)); account->outgoing_server_user_name = g_strdup(account->incoming_server_user_name); account->outgoing_server_password = g_strdup(account->incoming_server_password); /*user data set*/ account_user_data_t data; data.index_color = rgb; data.is_preset_account = YAHOOMAIL; data.show_images = 1; data.send_read_report = 0; data.pop3_deleting_option = 0; int data_len = sizeof(account_user_data_t); account->user_data = calloc(1, data_len); memcpy(account->user_data, (void *)&data, data_len); account->user_data_length = data_len; _account_info_print(account); } static void _set_hotmail(struct viewdata *vd) { debug_log(""); if (!vd) { debug_log("vd is NULL"); return; } EmailSettingUGD *ugd = vd->ugd; email_account_t *account = NULL; account = ugd->new_account; int rgb = 0xdc143cff; /* hotmail use email address in user name field */ account->incoming_server_user_name = g_strdup(account->user_email_address); _set_display_name_with_email_addr(account->user_email_address, &(account->user_display_name)); account->account_name = g_strdup(_("IDS_EMAIL_BODY_WINDOWS_LIVE_HOTMAIL")); account->reply_to_address = g_strdup(account->user_email_address); account->return_address = g_strdup(account->user_email_address); account->retrieval_mode = EMAIL_IMAP4_RETRIEVAL_MODE_ALL; /* EMAIL_IMAP4_RETRIEVAL_MODE_NEW; */ account->auto_download_size = 1024*10; /* downloading option, 0 is subject only, 1 is text body, 2 is normal. */ account->outgoing_server_use_same_authenticator = 1; /* Specifies the 'Same as POP3' option, 0 is none, 1 is 'Same as POP3' */ account->default_mail_slot_size = 25; account->pop_before_smtp = 0; account->incoming_server_requires_apop = 0; account->options.priority = 3; account->options.keep_local_copy = 1; account->options.req_delivery_receipt = 0; account->options.req_read_receipt = 0; account->options.download_limit = 0; account->options.block_address = 1; account->options.block_subject = 1; account->options.display_name_from = NULL; account->options.reply_with_body = 1; account->options.forward_with_files = 1; account->options.add_myname_card = 0; account->options.add_signature = 1; account->options.signature = g_strdup(DEFAULT_SIGNATURE); account->logo_icon_path = g_strdup(ACCOUNT_ICON_HOTMAIL); account->outgoing_server_type = EMAIL_SERVER_TYPE_SMTP; account->outgoing_server_need_authentication = 1; /*account->user_display_name = g_strdup(account->user_display_name); account->user_email_address = g_strdup("@aol.com"); account->incoming_server_password = g_strdup();*/ vconf_get_int("file/private/com.samsung.email/hotmail_receiving_type", (int *)&(account->incoming_server_type)); vconf_get_int("file/private/com.samsung.email/hotmail_receiving_port", &(account->incoming_server_port_number)); vconf_get_int("file/private/com.samsung.email/hotmail_receiving_ssl", &(account->incoming_server_secure_connection)); account->incoming_server_address = vconf_get_str("file/private/com.samsung.email/hotmail_receiving_address"); account->outgoing_server_address = vconf_get_str("file/private/com.samsung.email/hotmail_sending_address"); vconf_get_int("file/private/com.samsung.email/hotmail_sending_port", &(account->outgoing_server_port_number)); vconf_get_int("file/private/com.samsung.email/hotmail_sending_ssl", &(account->outgoing_server_secure_connection)); account->outgoing_server_user_name = g_strdup(account->incoming_server_user_name); account->outgoing_server_password = g_strdup(account->incoming_server_password); /*user data set*/ account_user_data_t data; data.index_color = rgb; data.is_preset_account = HOTMAIL; data.show_images = 1; data.send_read_report = 0; data.pop3_deleting_option = 0; int data_len = sizeof(account_user_data_t); account->user_data = calloc(1, data_len); memcpy(account->user_data, (void *)&data, data_len); account->user_data_length = data_len; _account_info_print(account); } static void _set_aol(struct viewdata *vd) { debug_log(""); if (!vd) { debug_log("vd is NULL"); return; } EmailSettingUGD *ugd = vd->ugd; email_account_t *account = NULL; account = ugd->new_account; int rgb = 0x008080ff; account->incoming_server_user_name = g_strdup(account->user_email_address); _set_display_name_with_email_addr(account->user_email_address, &(account->user_display_name)); account->account_name = g_strdup(_("IDS_EMAIL_BODY_AOL")); account->reply_to_address = g_strdup(account->user_email_address); account->return_address = g_strdup(account->user_email_address); account->retrieval_mode = EMAIL_IMAP4_RETRIEVAL_MODE_ALL; /* EMAIL_IMAP4_RETRIEVAL_MODE_NEW; */ account->auto_download_size = 1024*10; /* downloading option, 0 is subject only, 1 is text body, 2 is normal. */ account->outgoing_server_use_same_authenticator = 1; /* Specifies the 'Same as POP3' option, 0 is none, 1 is 'Same as POP3' */ account->default_mail_slot_size = 25; account->pop_before_smtp = 0; account->incoming_server_requires_apop = 0; account->options.priority = 3; account->options.keep_local_copy = 1; account->options.req_delivery_receipt = 0; account->options.req_read_receipt = 0; account->options.download_limit = 0; account->options.block_address = 1; account->options.block_subject = 1; account->options.display_name_from = NULL; account->options.reply_with_body = 1; account->options.forward_with_files = 1; account->options.add_myname_card = 0; account->options.add_signature = 1; account->options.signature = g_strdup(DEFAULT_SIGNATURE); account->logo_icon_path = g_strdup(ACCOUNT_ICON_AOL); account->outgoing_server_type = EMAIL_SERVER_TYPE_SMTP; account->outgoing_server_need_authentication = 1; /*account->user_display_name = g_strdup(account->user_display_name); account->user_email_address = g_strdup("@aol.com"); account->incoming_server_password = g_strdup();*/ vconf_get_int("file/private/com.samsung.email/aol_receiving_type", (int *)&(account->incoming_server_type)); vconf_get_int("file/private/com.samsung.email/aol_receiving_port", &(account->incoming_server_port_number)); vconf_get_int("file/private/com.samsung.email/aol_receiving_ssl", &(account->incoming_server_secure_connection)); account->incoming_server_address = vconf_get_str("file/private/com.samsung.email/aol_receiving_address"); account->outgoing_server_address = vconf_get_str("file/private/com.samsung.email/aol_sending_address"); vconf_get_int("file/private/com.samsung.email/aol_sending_port", &(account->outgoing_server_port_number)); vconf_get_int("file/private/com.samsung.email/aol_sending_ssl", &(account->outgoing_server_secure_connection)); account->outgoing_server_user_name = g_strdup(account->incoming_server_user_name); account->outgoing_server_password = g_strdup(account->incoming_server_password); /*user data set*/ account_user_data_t data; data.index_color = rgb; data.is_preset_account = AOL; data.show_images = 1; data.send_read_report = 0; data.pop3_deleting_option = 0; int data_len = sizeof(account_user_data_t); account->user_data = calloc(1, data_len); memcpy(account->user_data, (void *)&data, data_len); account->user_data_length = data_len; _account_info_print(account); } static void _set_others(struct viewdata *vd) { debug_log(""); if (!vd) { debug_log("vd is NULL"); return; } EmailSettingUGD *ugd = vd->ugd; email_account_t *account = NULL; account = ugd->new_account; int rgb = 0x006400ff; _set_display_name_with_email_addr(account->user_email_address, &(account->user_display_name)); _set_user_name_with_email_addr(account->user_email_address, &(account->incoming_server_user_name)); account->reply_to_address = g_strdup(account->user_email_address); account->return_address = g_strdup(account->user_email_address); account->retrieval_mode = EMAIL_IMAP4_RETRIEVAL_MODE_ALL; /* EMAIL_IMAP4_RETRIEVAL_MODE_NEW; */ account->auto_download_size = 1024*10; /* downloading option, 0 is subject only, 1 is text body, 2 is normal. */ account->outgoing_server_use_same_authenticator = 1; /* Specifies the 'Same as POP3' option, 0 is none, 1 is 'Same as POP3' */ account->default_mail_slot_size = 25; account->pop_before_smtp = 0; account->incoming_server_requires_apop = 0; account->options.priority = 3; account->options.keep_local_copy = 1; account->options.req_delivery_receipt = 0; account->options.req_read_receipt = 0; account->options.download_limit = 0; account->options.block_address = 1; account->options.block_subject = 1; account->options.display_name_from = NULL; account->options.reply_with_body = 1; account->options.forward_with_files = 1; account->options.add_myname_card = 0; account->options.add_signature = 1; account->options.signature = g_strdup(DEFAULT_SIGNATURE); account->logo_icon_path = g_strdup(ACCOUNT_ICON_OTHERS); account->outgoing_server_type = EMAIL_SERVER_TYPE_SMTP; account->outgoing_server_need_authentication = 1; /*account->account_name = ; account->user_display_name = g_strdup(account->user_display_name); account->user_email_address = ; account->incoming_server_password = ; account->incoming_server_type = ; account->incoming_server_address = ; account->incoming_server_port_number = ; account->incoming_server_secure_connection = ; account->outgoing_server_address = ); account->outgoing_server_port_number = ; account->outgoing_server_secure_connection = ; account->outgoing_server_user_name = g_strdup(account->user_display_name);*/ account->outgoing_server_password = g_strdup(account->incoming_server_password); account->outgoing_server_user_name = g_strdup(account->incoming_server_user_name); /*user data set*/ account_user_data_t data; data.index_color = rgb; data.is_preset_account = 0; data.show_images = 1; data.send_read_report = 0; data.pop3_deleting_option = 0; int data_len = sizeof(account_user_data_t); account->user_data = calloc(1, data_len); memcpy(account->user_data, (void *)&data, data_len); account->user_data_length = data_len; _account_info_print(account); } static void _set_user_name_with_email_addr(char *email_addr, char **user_name) { debug_log(""); if (!email_addr) { debug_log("email_addr is NULL"); return; } char *buf; buf = g_strdup(email_addr); *user_name = g_strdup(strtok(buf, "@")); debug_log("email address : %s", email_addr); debug_log("buf email address :%s", buf); debug_log("user_name :%s", *user_name); free(buf); } static void _set_display_name_with_email_addr(char *email_addr, char **display_name) { debug_log(""); if (!email_addr) { debug_log("email_addr is NULL"); return; } char *buf; buf = g_strdup(email_addr); *display_name = g_strdup(strtok(buf, "@")); debug_log("email address : %s", email_addr); debug_log("buf email address :%s", buf); debug_log("display_name :%s", *display_name); free(buf); } static void _account_info_print(email_account_t *account) { debug_log(""); if (!account) { debug_log("account is NULL"); return; } debug_log("account name: %s", account->account_name); debug_log("incoming server user name: %s", account->incoming_server_user_name); debug_log("user display name: %s", account->user_display_name); debug_log("user email addr: %s", account->user_email_address); debug_log("incoming server address: %s", account->incoming_server_address); debug_log("outgoing server address: %s", account->outgoing_server_address); debug_log("incoming server type: %d", account->incoming_server_type); debug_log("incoming server port :%d", account->incoming_server_port_number); debug_log("incoming server ssl : %d", account->incoming_server_secure_connection); debug_log("outgoing server port: %d", account->outgoing_server_port_number); debug_log("outgoing server ssl: %d", account->outgoing_server_secure_connection); debug_log("outgoing server user name: %s", account->outgoing_server_user_name); debug_log("outgoing server password: %s", account->outgoing_server_password); } /* EOF */