{"id":20293,"date":"2019-06-18T08:09:36","date_gmt":"2019-06-17T23:09:36","guid":{"rendered":"https:\/\/agrimo.jp\/wp\/?page_id=20293"},"modified":"2019-06-20T15:37:37","modified_gmt":"2019-06-20T06:37:37","slug":"2-mailkitmimekit%e3%80%80%ef%bc%88%e3%83%a1%e3%83%bc%e3%83%ab%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88%e3%83%a9%e3%82%a4%e3%83%96%e3%83%a9%e3%83%aa%ef%bc%89","status":"publish","type":"page","link":"https:\/\/agrimo.jp\/wp\/?page_id=20293","title":{"rendered":"2.MailKit&#038;MimeKit\u3000\uff08\u30e1\u30fc\u30eb\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u30e9\u30a4\u30d6\u30e9\u30ea\uff09"},"content":{"rendered":"<p>\u30e1\u30fc\u30eb\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u30e9\u30a4\u30d6\u30e9\u30ea\uff08MailKit&amp;MimeKit\uff09\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n<p>\u30a2\u30b0\u30ea\u30e2\u88fd\u54c1\u3067\u306f\u3001\u3072\u304b\u308a\u96fb\u8a71CTI\u3001\u3072\u304b\u308aFAX\u96fb\u8a71CTI\u306e\u7740\u4fe1\u901a\u77e5\u30e1\u30fc\u30eb\u6a5f\u80fd\u305d\u306e\u4ed6\u3067\u4f7f\u7528\u3057\u3066\u3044\u307e\u3059\u3002\u30b9\u30ec\u30c3\u30c9\u30bb\u30fc\u30d5\u306a\u30e9\u30a4\u30d6\u30e9\u30ea\u3068\u3044\u3046\u3053\u3068\u3067\u4fe1\u983c\u3057\u3066\u4f7f\u3063\u3066\u3044\u307e\u3059\u3002\u307e\u305f\u3001\u30de\u30a4\u30af\u30ed\u30bd\u30d5\u30c8\u3082\u3053\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u4f7f\u7528\u3092\u63a8\u5968\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>&nbsp;<\/p>\n<p>\uff11\uff0e\u65b0\u898f\u306b\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/p>\n<p style=\"padding-left: 40px;\"><a href=\"https:\/\/agrimo.jp\/wp\/wp-content\/uploads\/2019\/06\/2019-06-19_12h15_36.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-20395\" src=\"https:\/\/agrimo.jp\/wp\/wp-content\/uploads\/2019\/06\/2019-06-19_12h15_36-300x160.png\" alt=\"\" width=\"300\" height=\"160\" srcset=\"https:\/\/agrimo.jp\/wp\/wp-content\/uploads\/2019\/06\/2019-06-19_12h15_36-300x160.png 300w, https:\/\/agrimo.jp\/wp\/wp-content\/uploads\/2019\/06\/2019-06-19_12h15_36-1024x547.png 1024w, https:\/\/agrimo.jp\/wp\/wp-content\/uploads\/2019\/06\/2019-06-19_12h15_36-50x27.png 50w, https:\/\/agrimo.jp\/wp\/wp-content\/uploads\/2019\/06\/2019-06-19_12h15_36-820x438.png 820w, https:\/\/agrimo.jp\/wp\/wp-content\/uploads\/2019\/06\/2019-06-19_12h15_36.png 1363w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>\uff12\uff0e\u30d1\u30c3\u30b1\u30fc\u30b8\u30de\u30cd\u30fc\u30b8\u30e3\u30fc\u30b3\u30f3\u30bd\u30fc\u30eb\u3067\u3001\u300cInstall-Package MimeKit\u300d\u3068\u5165\u529b\u3057\u3066Enter\u30ad\u30fc\u3092\u62bc\u4e0b\u3057\u307e\u3059\u3002<\/p>\n<p style=\"padding-left: 40px;\"><a href=\"https:\/\/agrimo.jp\/wp\/wp-content\/uploads\/2019\/06\/2019-06-19_12h18_32.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-20396\" src=\"https:\/\/agrimo.jp\/wp\/wp-content\/uploads\/2019\/06\/2019-06-19_12h18_32-300x160.png\" alt=\"\" width=\"300\" height=\"160\" srcset=\"https:\/\/agrimo.jp\/wp\/wp-content\/uploads\/2019\/06\/2019-06-19_12h18_32-300x160.png 300w, https:\/\/agrimo.jp\/wp\/wp-content\/uploads\/2019\/06\/2019-06-19_12h18_32-1024x546.png 1024w, https:\/\/agrimo.jp\/wp\/wp-content\/uploads\/2019\/06\/2019-06-19_12h18_32-50x27.png 50w, https:\/\/agrimo.jp\/wp\/wp-content\/uploads\/2019\/06\/2019-06-19_12h18_32-820x437.png 820w, https:\/\/agrimo.jp\/wp\/wp-content\/uploads\/2019\/06\/2019-06-19_12h18_32.png 1364w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>\uff13\uff0e\u7d9a\u3044\u3066\u3001\u30d1\u30c3\u30b1\u30fc\u30b8\u30de\u30cd\u30fc\u30b8\u30e3\u30fc\u30b3\u30f3\u30bd\u30fc\u30eb\u3067\u3001\u300cInstall-Package MailKit\u300d\u3068\u5165\u529b\u3057\u3066Enter\u30ad\u30fc\u3092\u62bc\u4e0b\u3057\u307e\u3059\u3002<\/p>\n<p style=\"padding-left: 40px;\"><a href=\"https:\/\/agrimo.jp\/wp\/wp-content\/uploads\/2019\/06\/2019-06-19_12h20_31.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-20397\" src=\"https:\/\/agrimo.jp\/wp\/wp-content\/uploads\/2019\/06\/2019-06-19_12h20_31-300x160.png\" alt=\"\" width=\"300\" height=\"160\" srcset=\"https:\/\/agrimo.jp\/wp\/wp-content\/uploads\/2019\/06\/2019-06-19_12h20_31-300x160.png 300w, https:\/\/agrimo.jp\/wp\/wp-content\/uploads\/2019\/06\/2019-06-19_12h20_31-1024x546.png 1024w, https:\/\/agrimo.jp\/wp\/wp-content\/uploads\/2019\/06\/2019-06-19_12h20_31-50x27.png 50w, https:\/\/agrimo.jp\/wp\/wp-content\/uploads\/2019\/06\/2019-06-19_12h20_31-820x437.png 820w, https:\/\/agrimo.jp\/wp\/wp-content\/uploads\/2019\/06\/2019-06-19_12h20_31.png 1364w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>\uff14\uff0e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u53c2\u7167\u306b\u4ee5\u4e0b\u306e\uff13\u3064\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002<\/p>\n<p style=\"padding-left: 40px;\"><a href=\"https:\/\/agrimo.jp\/wp\/wp-content\/uploads\/2019\/06\/2019-06-19_12h21_02.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-20398\" src=\"https:\/\/agrimo.jp\/wp\/wp-content\/uploads\/2019\/06\/2019-06-19_12h21_02-300x160.png\" alt=\"\" width=\"300\" height=\"160\" srcset=\"https:\/\/agrimo.jp\/wp\/wp-content\/uploads\/2019\/06\/2019-06-19_12h21_02-300x160.png 300w, https:\/\/agrimo.jp\/wp\/wp-content\/uploads\/2019\/06\/2019-06-19_12h21_02-1024x545.png 1024w, https:\/\/agrimo.jp\/wp\/wp-content\/uploads\/2019\/06\/2019-06-19_12h21_02-50x27.png 50w, https:\/\/agrimo.jp\/wp\/wp-content\/uploads\/2019\/06\/2019-06-19_12h21_02-820x436.png 820w, https:\/\/agrimo.jp\/wp\/wp-content\/uploads\/2019\/06\/2019-06-19_12h21_02.png 1363w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>\u30b5\u30f3\u30d7\u30eb\uff11\u3000\uff08SSL\/TLS\uff09<\/p>\n<pre class=\"lang:default decode:true\" title=\"\u30b5\u30f3\u30d7\u30eb\uff11\uff08SSL\/TLS\uff09\">using MailKit;\r\nusing MailKit.Net.Imap;\r\nusing MailKit.Net.Pop3;\r\nusing MailKit.Search;\r\nusing MailKit.Security;\r\n\r\n\r\n\/\/SSL\r\nSecureSocketOptions ssl = SecureSocketOptions.None;\r\n\r\nssl = SecureSocketOptions.Auto;                     \/\/ \u81ea\u52d5\u5224\u5225\u3067\u63a5\u7d9a\u3059\u308b\r\nssl = SecureSocketOptions.SslOnConnect;             \/\/ SSL\u3067\u63a5\u7d9a\u3059\u308b\r\nssl = SecureSocketOptions.StartTls;                 \/\/ StartTLS\u3067\u63a5\u7d9a\u3059\u308b\r\nssl = SecureSocketOptions.StartTlsWhenAvailable;    \/\/ \u53ef\u80fd\u306a\u3089StartTLS\u3067\u63a5\u7d9a\u3059\u308b\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>\u30b5\u30f3\u30d7\u30eb\uff12\u3000\uff08POP3\uff09<\/p>\n<pre class=\"lang:default decode:true\" title=\"\u30b5\u30f3\u30d7\u30eb\uff12\u3000\uff08POP3\uff09\">using (var client = new Pop3Client())\r\n{\r\n    lock (client.SyncRoot)\u3000\u3000\/\/\u30b9\u30ec\u30c3\u30c9\u51e6\u7406\u306e\u305f\u3081\u30ed\u30c3\u30af\u3059\u308b\r\n    {\r\n        client.Connect(RecvSvr_Addr, int.Parse(RecvSvr_Port), ssl);\r\n\r\n        \/\/ disable OAuth2 authentication unless you are actually using an access_token\r\n        client.AuthenticationMechanisms.Remove(\"XOAUTH2\");\r\n\r\n        client.Authenticate(AccountNM, MPasswd);\r\n\r\n        string mydocument = System.Environment.GetFolderPath(Environment.SpecialFolder.Personal);\r\n        string save_path = mydocument + \"\\\\mail\\\\INBOX\\\\\";\r\n\r\n        for (int i = 0; i &lt; client.Count; i++)\r\n        {\r\n            var m = client.GetMessage(i);\r\n\r\n            string _from = \"\";\r\n            if (m.From.Count &gt; 0)\r\n            {\r\n                _from = ((MimeKit.MailboxAddress)m.From[0]).Address;\r\n            }\r\n            string _to = \"\";\r\n            if (m.To.Count &gt; 0)\r\n            {\r\n                _to = ((MimeKit.MailboxAddress)m.To[0]).Address;\r\n            }\r\n\r\n            \/\/\u30e1\u30fc\u30eb\u5c65\u6b74\u3092\uff24\uff22\u306b\u4fdd\u5b58\u3059\u308b\r\n            int ret = Hozon_to_DB_mail_rireki(_from, _to, m.MessageId, m.Date.LocalDateTime, \"1\", m.Subject, \"INBOX\");\r\n            \/\/\u30a8\u30e9\u30fc\u6642\r\n            if (ret == -1)\r\n            {\r\n                throw new MyExitException();    \/\/MyClock\u51e6\u7406\u304b\u3089\u629c\u3051\u308b\r\n            }\r\n            \/\/\u9867\u5ba2\u60c5\u5831\u306b\u898b\u3064\u304b\u3063\u305f\u6642\r\n            else if (ret == 1)\r\n            {\r\n                \/\/ \u30e1\u30c3\u30bb\u30fc\u30b8\u672c\u6587\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u30d5\u30a1\u30a4\u30eb\u306b\u4fdd\u5b58\u3059\u308b\r\n                m.WriteTo(save_path + m.MessageId + \".eml\");\r\n            }\r\n        }\r\n\r\n        client.Disconnect(true);\r\n    }\r\n}\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>\u30b5\u30f3\u30d7\u30eb\uff13\u3000\uff08IMAP\uff09<\/p>\n<pre class=\"lang:default decode:true \" title=\"\u30b5\u30f3\u30d7\u30eb\uff13\u3000IMAP\">using (var client = new ImapClient())\r\n{\r\n    lock (client.SyncRoot)\u3000\u3000\/\/\u30b9\u30ec\u30c3\u30c9\u51e6\u7406\u306e\u305f\u3081\u30ed\u30c3\u30af\u3059\u308b\r\n    {\r\n        client.Connect(RecvSvr_Addr, int.Parse(RecvSvr_Port), ssl);\r\n\r\n        \/\/ disable OAuth2 authentication unless you are actually using an access_token\r\n        client.AuthenticationMechanisms.Remove(\"XOAUTH2\");\r\n\r\n        client.Authenticate(IMAP4_AccountNM, MPasswd);\r\n\r\n\r\n        \/\/IMAP INBOX\u30d5\u30a9\u30eb\u30c0\u306e\u53d7\u4fe1\u3068\u4fdd\u5b58\r\n        save_mail_imap(client.Inbox, \"1\");\r\n\r\n        \/\/IMAP \u305d\u306e\u4ed6\u30d5\u30a9\u30eb\u30c0\u306e\u53d7\u4fe1\u3068\u4fdd\u5b58\r\n        var personal = client.GetFolder(client.PersonalNamespaces[0]);\r\n        foreach (var folder in personal.GetSubfolders(false))\r\n        {\r\n            switch (folder.Name)\r\n            {\r\n                case \"INBOX.Sent\":\r\n                case \"INBOX.Sent Items\":\r\n                case \"INBOX\/Sent\":\r\n                case \"INBOX\/Sent Items\":\r\n                case \"Sent\":\r\n                case \"Sent Items\":\r\n                    save_mail_imap(folder, \"2\");\r\n                    break;\r\n            }\r\n        }\r\n\r\n        client.Disconnect(true);\r\n    }\r\n}\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>\u30b5\u30f3\u30d7\u30eb\uff14\u3000\uff08\u30e1\u30fc\u30eb\u4fdd\u5b58\u3000IMAP\uff09<\/p>\n<pre class=\"lang:default decode:true \" title=\"\u30b5\u30f3\u30d7\u30eb\uff14\u3000\uff08\u30e1\u30fc\u30eb\u4fdd\u5b58\u3000IMAP\uff09\">        \/\/\u30e1\u30fc\u30eb\u4fdd\u5b58\uff08IMAP\u7528\uff09\r\n        private void save_mail_imap(IMailFolder folder, string mtype)\r\n        {\r\n            string mydocument = System.Environment.GetFolderPath(Environment.SpecialFolder.Personal);\r\n            string save_path = mydocument + \"\\\\mail\\\\\";\r\n\r\n            \/\/IMAP\u30d5\u30a9\u30eb\u30c0\u3092\u958b\u304f\r\n            folder.Open(FolderAccess.ReadOnly);\r\n\r\n            var uids = folder.Search(SearchQuery.All);\r\n            foreach (var uid in uids)\r\n            {\r\n                var m = folder.GetMessage(uid);\r\n                if (m.Date != null)\r\n                {\r\n                    \/\/\u4f8b\u5916\u30a8\u30e9\u30fc\u306e\u767a\u751f\u3092\u9632\u3050\u51e6\u7406\r\n                    if (m.To.Count &lt; 1)\r\n                    {\r\n                        continue;\r\n                    }\r\n\r\n                    \/\/\u30e1\u30fc\u30eb\u5c65\u6b74\u3092\uff24\uff22\u306b\u4fdd\u5b58\u3059\u308b\r\n                    string _from = \"\";\r\n                    if (m.From.Count &gt; 0)\r\n                    {\r\n                        _from = ((MimeKit.MailboxAddress)m.From[0]).Address;\r\n                    }\r\n                    string _to = \"\";\r\n                    if (m.To.Count &gt; 0)\r\n                    {\r\n                        _to = ((MimeKit.MailboxAddress)m.To[0]).Address;\r\n                    }\r\n\r\n                    int ret = Hozon_to_DB_mail_rireki(_from, _to, uid.ToString(), m.Date.LocalDateTime, mtype, m.Subject, folder.Name);\r\n                    \/\/\u30a8\u30e9\u30fc\u6642\r\n                    if (ret == -1)\r\n                    {\r\n                        return;\r\n                    }\r\n                    \/\/\u9867\u5ba2\u60c5\u5831\u306b\u898b\u3064\u304b\u3063\u305f\u6642\r\n                    else if (ret == 1)\r\n                    {\r\n                        \/\/ \u30e1\u30c3\u30bb\u30fc\u30b8\u672c\u6587\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u30d5\u30a1\u30a4\u30eb\u306b\u4fdd\u5b58\u3059\u308b\r\n                        if (File.Exists(save_path + folder.Name + \"\\\\\" + uid.ToString() + \".eml\") == false)\r\n                        {\r\n                            \/\/\u30d5\u30a1\u30a4\u30eb\u3078\u66f8\u304d\u51fa\u3057\r\n                            m.WriteTo(save_path + folder.Name + \"\\\\\" + uid.ToString() + \".eml\");\r\n                        }\r\n                    }\r\n\r\n                    if (thread_mail_abort == true)\r\n                    {\r\n                        throw new MyExitException();    \/\/MyClock\u51e6\u7406\u304b\u3089\u629c\u3051\u308b\r\n                    }\r\n                }\r\n            }\r\n        }\r\n<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u30e1\u30fc\u30eb\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u30e9\u30a4\u30d6\u30e9\u30ea\uff08MailKit&amp;MimeKit\uff09\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u3066\u3044\u304d\u307e\u3059\u3002 \u30a2\u30b0\u30ea\u30e2\u88fd\u54c1 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-20293","page","type-page","status-publish","hentry"],"wppr_data":{"cwp_meta_box_check":"No"},"_links":{"self":[{"href":"https:\/\/agrimo.jp\/wp\/index.php?rest_route=\/wp\/v2\/pages\/20293","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/agrimo.jp\/wp\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/agrimo.jp\/wp\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/agrimo.jp\/wp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/agrimo.jp\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=20293"}],"version-history":[{"count":17,"href":"https:\/\/agrimo.jp\/wp\/index.php?rest_route=\/wp\/v2\/pages\/20293\/revisions"}],"predecessor-version":[{"id":20493,"href":"https:\/\/agrimo.jp\/wp\/index.php?rest_route=\/wp\/v2\/pages\/20293\/revisions\/20493"}],"wp:attachment":[{"href":"https:\/\/agrimo.jp\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=20293"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}