{"id":520,"date":"2009-01-24T23:46:48","date_gmt":"2009-01-24T14:46:48","guid":{"rendered":"http:\/\/takachan.jra.net\/blog\/?p=520"},"modified":"2009-01-25T23:20:42","modified_gmt":"2009-01-25T14:20:42","slug":"dovecot%e3%82%82postgresql%e3%81%a7%e3%82%a2%e3%82%ab%e3%82%a6%e3%83%b3%e3%83%88%e7%ae%a1%e7%90%86","status":"publish","type":"post","link":"https:\/\/takachan.jra.net\/blog\/archives\/520","title":{"rendered":"Dovecot\u3082PostgreSQL\u3067\u30a2\u30ab\u30a6\u30f3\u30c8\u7ba1\u7406"},"content":{"rendered":"<div class='wp_social_bookmarking_light'>\n            <div class=\"wsbl_facebook_like\"><div id=\"fb-root\"><\/div><fb:like href=\"https:\/\/takachan.jra.net\/blog\/archives\/520\" layout=\"button_count\" action=\"like\" width=\"100\" share=\"false\" show_faces=\"false\" ><\/fb:like><\/div>\n            <div class=\"wsbl_twitter\"><a href=\"https:\/\/twitter.com\/share\" class=\"twitter-share-button\" data-url=\"https:\/\/takachan.jra.net\/blog\/archives\/520\" data-text=\"Dovecot\u3082PostgreSQL\u3067\u30a2\u30ab\u30a6\u30f3\u30c8\u7ba1\u7406\" data-lang=\"ja\">Tweet<\/a><\/div>\n            <div class=\"wsbl_google_plus_one\"><g:plusone size=\"medium\" annotation=\"none\" href=\"https:\/\/takachan.jra.net\/blog\/archives\/520\" ><\/g:plusone><\/div>\n            <div class=\"wsbl_hatena_button\"><a href=\"\/\/b.hatena.ne.jp\/entry\/https:\/\/takachan.jra.net\/blog\/archives\/520\" class=\"hatena-bookmark-button\" data-hatena-bookmark-title=\"Dovecot\u3082PostgreSQL\u3067\u30a2\u30ab\u30a6\u30f3\u30c8\u7ba1\u7406\" data-hatena-bookmark-layout=\"standard\" title=\"\u3053\u306e\u30a8\u30f3\u30c8\u30ea\u30fc\u3092\u306f\u3066\u306a\u30d6\u30c3\u30af\u30de\u30fc\u30af\u306b\u8ffd\u52a0\"> <img src=\"\/\/b.hatena.ne.jp\/images\/entry-button\/button-only@2x.png\" alt=\"\u3053\u306e\u30a8\u30f3\u30c8\u30ea\u30fc\u3092\u306f\u3066\u306a\u30d6\u30c3\u30af\u30de\u30fc\u30af\u306b\u8ffd\u52a0\" width=\"20\" height=\"20\" style=\"border: none;\" \/><\/a><script type=\"text\/javascript\" src=\"\/\/b.hatena.ne.jp\/js\/bookmark_button.js\" charset=\"utf-8\" async=\"async\"><\/script><\/div>\n    <\/div>\n<br class='wp_social_bookmarking_light_clear' \/>\n<p>\u3044\u3088\u3044\u3088\u30e1\u30fc\u30eb\u30b5\u30fc\u30d0\u30fc\u5165\u308c\u66ff\u3048\u5b9f\u9a13\u3082\u6700\u7d42\u5c40\u9762\u3078\u3002<br \/>\n\u524d\u56de\u3001Postfix\u304cPostgreSQL\u3067\u7ba1\u7406\u3055\u308c\u305f\u30a2\u30ab\u30a6\u30f3\u30c8\u60c5\u5831\u3067\u30e1\u30fc\u30eb\u3092\u53d7\u4fe1\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u306e\u3067\u3001\u6b8b\u308b\u306fDovecot\u3067\u3082PostgreSQL\u3067\u7ba1\u7406\u3055\u308c\u305f\u30a2\u30ab\u30a6\u30f3\u30c8\u60c5\u5831\u3067POP3\/IMAP4\u3092\u4f7f\u3063\u305f\u30e1\u30fc\u30eb\u53d7\u4fe1\u3068SMTP\u8a8d\u8a3c\u3092\u53ef\u80fd\u306b\u3057\u3066\u3084\u308b\u4e8b\u306b\u3059\u308b\u3002<\/p>\n<p>Dovecot\u306e\u8a2d\u5b9a\u30b5\u30f3\u30d7\u30eb\u306bSQL\u3092\u4f7f\u3063\u305f\u8a8d\u8a3c\u306e\u3082\u306e\u304c\u7528\u610f\u3055\u308c\u3066\u3044\u308b\u306e\u3067\u30b3\u30d4\u30fc\u3057\u3066\u4f7f\u3046<br \/>\n<code># cp \/usr\/local\/etc\/dovecot-sql-example.conf \/usr\/local\/etc\/dovecot-sql.conf<\/code><br \/>\n\u30b3\u30d4\u30fc\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u306e\u7de8\u96c6\u5185\u5bb9\u306f<br \/>\n<code>driver&nbsp;=&nbsp;pgsql<br \/>\nconnect = dbname=postfix user=postfix password=*******<br \/>\ndefault_pass_scheme&nbsp;=&nbsp;PLAIN<br \/>\npassword_query = SELECT login_id AS user, password FROM virtual_maps WHERE login_id = '%u' AND status_flag = 1<br \/>\nuser_query = SELECT '\/var\/mail\/' || maildir AS home, 10000 AS uid, 10000 AS gid FROM virtual_maps WHERE login_id = '%u' AND status_flag = 1<\/code>\u3068\u3044\u3063\u305f\u611f\u3058\u3002<\/p>\n<p>default_pass_scheme \u3092 PLAIN \u306b\u3057\u305f\u306e\u306f\u7406\u7531\u304c\u3042\u308b\u3002<br \/>\n\u901a\u5e38\u306f\u3053\u3053\u3092md5\u306a\u3069\u306b\u3057\u3066\u304a\u3044\u3066\u3001\u8a8d\u8a3c\u6642\u306b\u6697\u53f7\u5316\u3057\u305f\u30d1\u30b9\u30ef\u30fc\u30c9\u3067\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3068\u30b5\u30fc\u30d0\u9593\u306e\u901a\u4fe1\u3092\u3055\u305b\u305f\u3044\u304c\u3001DB\u4e0a\u306e\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u6697\u53f7\u5316\u3055\u308c\u3066\u3044\u308b\u3068\u540c\u3058\u6697\u53f7\u5316\u65b9\u5f0f\u306e\u8a8d\u8a3c\u3057\u304b\u5229\u7528\u3067\u304d\u306a\u304f\u306a\u308a\u6c4e\u7528\u6027\u304c\u4f4e\u304f\u306a\u308b\u3002<br \/>\n\u3057\u304b\u3057\u3001DB\u4e0a\u306e\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u5e73\u6587\u3067\u4fdd\u5b58\u3057\u3066\u304a\u304f\u3053\u3068\u3067\u901a\u4fe1\u6642\u306e\u6697\u53f7\u5316\u65b9\u5f0f\u306b\u5e45\u304c\u51fa\u3066\u3001\u591a\u304f\u306e\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3068\u901a\u4fe1\u304c\u53ef\u80fd\u306b\u306a\u308b\u3002<br \/>\n\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u901a\u4fe1\u65b9\u6cd5\u3092\u5236\u9650\u3057\u305f\u3044\u5834\u5408\u306fdovecot.conf\u306e\u8a8d\u8a3c\u30e1\u30ab\u30cb\u30ba\u30e0\u6307\u5b9a\u3067\u5236\u9650\u3092\u304b\u3051\u308b\u65b9\u304c\u73fe\u5b9f\u7684\u3060\u3002<br \/>\n\u307e\u305f\u3001Outlook Express\u306fSMTP\u8a8d\u8a3c\u306bLOGIN\u8a8d\u8a3c\u3057\u304b\u4f7f\u3048\u306a\u304b\u3063\u305f\u308a\u3059\u308b\u306e\u3067cram-md5\u3057\u304b\u4f7f\u3048\u306a\u304f\u306a\u308b\u3068\u63a5\u7d9a\u3067\u304d\u306a\u3044\u3002<br \/>\n\u307e\u3041\u65e2\u306b\u958b\u767a\u304c\u7d42\u308f\u3063\u3066\u30b5\u30dd\u30fc\u30c8\u3082\u7121\u304f\u306a\u308b\u30bd\u30d5\u30c8\u306a\u3093\u3067\u4f7f\u308f\u306a\u3044\u65b9\u304c\u3044\u3044\u306e\u3060\u304c\u3001\u53e4\u3044Windows\u306f\u672a\u3060\u306b\u73fe\u5f79\u3060\u3057\u3057\u3087\u3046\u304c\u306a\u3044\u3002<br \/>\nWindows\u30e1\u30fc\u30eb\u306b\u306a\u308b\u3068md5\u3092\u4f7f\u3063\u305f\u6697\u53f7\u5316\u306b\u3082\u5bfe\u5fdc\u3057\u3066\u3044\u308b\u306e\u3067\u3001\u4e57\u308a\u63db\u3048\u304c\u9032\u3080\u3068\u3044\u3044\u306e\u3060\u304c\u3002<\/p>\n<p>\u7d9a\u3044\u3066 \/usr\/local\/etc\/dovecot.conf \u306e\u7de8\u96c6\u3092\u884c\u3046\u3002<br \/>\n<code>auth default {<br \/>\n\u3000mechanisms = plain login cram-md5 apop<br \/>\n\u3000passdb sql {<br \/>\n\u3000\u3000# Path for SQL configuration file, see doc\/dovecot-sql-example.conf<br \/>\n\u3000\u3000args = \/usr\/local\/etc\/dovecot-sql.conf<br \/>\n\u3000}<br \/>\n\u3000userdb sql {<br \/>\n\u3000\u3000# Path for SQL configuration file, see doc\/dovecot-sql-example.conf<br \/>\n\u3000\u3000args = \/usr\/local\/etc\/dovecot-sql.conf<br \/>\n\u3000}<br \/>\n}<\/code>\u7de8\u96c6\u7b87\u6240\u3092\u629c\u7c8b\u3059\u308b\u3068\u3053\u3093\u306a\u611f\u3058\u3002<\/p>\n<p>\u30d1\u30b9\u30ef\u30fc\u30c9\u3068\u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u306e\u78ba\u8a8d\u306bSQL\u3092\u4f7f\u3048\u308b\u3088\u3046\u306b\u3057\u305f\u306e\u3068\u3001\u8a8d\u8a3c\u30e1\u30ab\u30cb\u30ba\u30e0\u306bcram-md5\u3068apop\u3092\u8ffd\u52a0\u3057\u305f\u3002<br \/>\ncram-md5\u3068apop\u306fDB\u3067\u7ba1\u7406\u3059\u308b\u30e6\u30fc\u30b6\u30fc\u306b\u3064\u3044\u3066\u306e\u307f\u6709\u52b9\u306a\u3053\u3068\u306b\u6ce8\u610f\u3002<br \/>\nOS\u306e\u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u306e\u30d1\u30b9\u30ef\u30fc\u30c9\u306fhash\u3067\u6697\u53f7\u5316\u3055\u308c\u3066\u3044\u308b\u3002hash\u306f\u4e0d\u53ef\u9006\u306a\u6697\u53f7\u5316\u65b9\u5f0f\u306a\u306e\u3067md5\u3067\u6697\u53f7\u5316\u3055\u308c\u305f\u30d1\u30b9\u30ef\u30fc\u30c9\u3068\u6bd4\u8f03\u304c\u51fa\u6765\u306a\u3044\u306e\u3067OS\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u7ba1\u7406\u3055\u308c\u3066\u3044\u308b\u30e6\u30fc\u30b6\u30fc\u306fPLAIN\u304bLOGIN\u8a8d\u8a3c\u3067\u3057\u304b\u8a8d\u8a3c\u3067\u304d\u306a\u3044\u3002<br \/>\n\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u5b89\u5168\u6027\u3092\u8003\u3048\u308b\u306a\u3089\u30e1\u30fc\u30eb\u30a2\u30ab\u30a6\u30f3\u30c8\u306fOS\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3068\u5206\u96e2\u3057\u3066\u7ba1\u7406\u3057\u3001\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u6697\u53f7\u5316\u3057\u3066\u9001\u4fe1\u3055\u305b\u308b\u304b\u3001POP\u3084IMAP\u306e\u901a\u4fe1\u81ea\u4f53\u3092SSL\u3067\u6697\u53f7\u5316\u3059\u308b\u306e\u304c\u826f\u3044\u3060\u308d\u3046\u3002<\/p>\n<p>Dovecot\u3092\u518d\u8d77\u52d5\u3057\u3001POP3\u3001IMAP4\u3067\u30e1\u30fc\u30eb\u304c\u53d7\u4fe1\u3067\u304d\u308b\u3053\u3068\u3068\u3001Submission\u30dd\u30fc\u30c8\u3067SMTP\u8a8d\u8a3c\u304c\u4f7f\u3048\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3067\u304d\u308c\u3070\u5b8c\u4e86\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u3044\u3088\u3044\u3088\u30e1\u30fc\u30eb\u30b5\u30fc\u30d0\u30fc\u5165\u308c\u66ff\u3048\u5b9f\u9a13\u3082\u6700\u7d42\u5c40\u9762\u3078\u3002 \u524d\u56de\u3001Postfix\u304cPostgreSQL\u3067\u7ba1\u7406\u3055\u308c\u305f\u30a2\u30ab\u30a6\u30f3\u30c8\u60c5\u5831\u3067\u30e1\u30fc\u30eb\u3092\u53d7\u4fe1\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u306e\u3067\u3001\u6b8b\u308b\u306fDovecot\u3067\u3082PostgreSQL\u3067\u7ba1\u7406\u3055\u308c\u305f\u30a2\u30ab\u30a6\u30f3 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[17],"tags":[],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5viHz-8o","_links":{"self":[{"href":"https:\/\/takachan.jra.net\/blog\/wp-json\/wp\/v2\/posts\/520"}],"collection":[{"href":"https:\/\/takachan.jra.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/takachan.jra.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/takachan.jra.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/takachan.jra.net\/blog\/wp-json\/wp\/v2\/comments?post=520"}],"version-history":[{"count":4,"href":"https:\/\/takachan.jra.net\/blog\/wp-json\/wp\/v2\/posts\/520\/revisions"}],"predecessor-version":[{"id":524,"href":"https:\/\/takachan.jra.net\/blog\/wp-json\/wp\/v2\/posts\/520\/revisions\/524"}],"wp:attachment":[{"href":"https:\/\/takachan.jra.net\/blog\/wp-json\/wp\/v2\/media?parent=520"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/takachan.jra.net\/blog\/wp-json\/wp\/v2\/categories?post=520"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/takachan.jra.net\/blog\/wp-json\/wp\/v2\/tags?post=520"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}