{"id":382,"date":"2015-03-18T13:00:54","date_gmt":"2015-03-18T13:00:54","guid":{"rendered":"http:\/\/blog.knofafo.de\/?p=382"},"modified":"2015-03-19T14:13:03","modified_gmt":"2015-03-19T14:13:03","slug":"a-major-domus","status":"publish","type":"post","link":"https:\/\/blog.knofafo.de\/?p=382","title":{"rendered":"A major domus"},"content":{"rendered":"<p>For several projects I recently felt the urge to dive into the world of mailing lists. Since I prefer having full control over such things rathern than delegating them somewhere, my first step was looking into my own webhosting package. It includes the the possibility to set up majordomo-mailinglists &#8211; I don&#8217;t know the exact number, it is nowhere stated, but the number email-adresses which for my package is 500, might be a limit &#8211; which, most likely, is sufficient.<br \/>\nMy demands for a mailing list are the following ones.<\/p>\n<ul>\n<li>little administration, high control<\/li>\n<li>easy for users<\/li>\n<li>preferably a closed list with control over external visitors<\/li>\n<li>controllability of the mail header up to a certain degree<\/li>\n<li>a cool unsubscribe-by-mail feature<\/li>\n<li>an archive available<\/li>\n<\/ul>\n<p>And some minor features which I&#8217;m going to explain in more detail later.<\/p>\n<p>Can this be accomplished with majordomo? Are there other caveats not visible at this point?<br \/>\n<!--more--><\/p>\n<p>I am no expert on mailing lists in general and on majordomo in special. An important feature, hence, is documentation, so I can quickly step into this topic.<br \/>\nDocumentation of Majordomo seems quite complete, since it is already a very old project, so half a day of reading and playing around brought great advances.<br \/>\nA lot of the features and problems listed here might be normal or just a result of the particular configuration my webhoster has chosen.<\/p>\n<p>Most of my webpages are lying at <a href=\"http:\/\/all-inkl.com\" title=\"all-inkl\" target=\"_blank\">all-inkl.com<\/a>.<br \/>\nThey have preinstalled Majordomo 1.94.5, which is the current stable release from January 19th, 2000 (more about this later).<br \/>\nAlso, when searching on google for Majordomo the instructions on the all-inkl-website appear as the second result.<\/p>\n<p>They assign quit clumsy names to mailing lists. The website I want do create a mailing list for is the subdomain <code>sub<\/code> of my domain <code>domain.tld<\/code>.<br \/>\nIf I chose the &#8220;name&#8221; <code>listname<\/code> it gets actually converted to <code>listname-sub-domain-tls<\/code> and the related email-addresses are even more complicated:<br \/>\n<code><br \/>\nlistname-sub-domain-tls@sub.domain.tld<br \/>\nowner-listname-sub-domain-tls@sub.domain.tld<br \/>\nlistname-sub-domain-tls-request@sub.domain.tld<br \/>\n<\/code><br \/>\nI, hence, created an email-forwarder <code>listname@sub.domain.tld<\/code> pointing to <code>listname-sub-domain-tls@sub.domain.tld<\/code>.<\/p>\n<p>To accomplish to above stated aims I, now, cofigured my mailing list using standard majordomo commands found in <a href=\"http:\/\/www.faqs.org\/faqs\/mail\/list-admin\/majordomo-faq\/\" title=\"the Majordomo FAQ\" target=\"_blank\">the Majordomo FAQ<\/a>, <a href=\"http:\/\/all-inkl.com\/wichtig\/anleitungen\/programme\/e-mail\/majordomo\/grundlagen_222.html\" title=\"the all-inkl HOWTO\" target=\"_blank\">the all-inkl HOWTO<\/a>, and <a href=\"http:\/\/haymarket.ed.ac.uk\/mjdocs\/md-listowner-params.html\" title=\"some Majordomo configration documentation\" target=\"_blank\">some Majordomo configration documentation<\/a>.<\/p>\n<p>Most of the settings can be left on their default values, so I only set specific values using the following commands:<\/p>\n<blockquote><p><code><br \/>\nnewconfig %%list-name%% %%admin_password%%<br \/>\n# description: a short description<br \/>\ndescription         = Discussion board %%list-shortname%%<\/p>\n<p># Comment string that will be retained across config file rewrites.<br \/>\ncomments            <<  END\nThis is a sample configuration file for a main list.\nEND\n\n# passwords\nadmin_passwd        =   %%admin_password%%\napprove_passwd      =   %%approve_password%%\n\n# administrivia        [bool] (yes) <resend><br \/>\n# No, because the footer contains the unsubscribe info which very<br \/>\n# often results in BOUNCE<br \/>\nadministrivia       =   no<\/p>\n<p># restrict_post - external posts are not desired<br \/>\nrestrict_post       = %%list-name%%<\/p>\n<p># access settings -<br \/>\n# should be overwritten by restrict_post, this is the minimum standard<br \/>\nget_access          =   list<br \/>\nindex_access        =   list<br \/>\ninfo_access         =   open<br \/>\nintro_access        =   list<br \/>\nwhich_access        =   list<br \/>\nwho_access          =   list<\/p>\n<p># message footer with unsubscribe info<br \/>\nmessage_footer      <<  END\n-\n--- \nYou receive this mail because you subscribed to the %%list-shortname%% mailing list.\nFor unsubscribing from the list send an *empty* message \n        %%list-shortname%%-unsubscribe@%%domain.tld%%\nEND\n\n# additional mail headers useful for some mail clients\nmessage_headers << END\nList-Id: $LIST\nList-Unsubscribe: <mailto:%%list-shortname%%-unsubscribe@%%domain.tld%%><br \/>\n-<br \/>\nEND<\/p>\n<p># moderation<br \/>\nmoderate            =   no<\/p>\n<p># reply_to - the email-forwarder<br \/>\nreply_to            = %%list-shortname%%@%%domain.tld%%<\/p>\n<p># strip - yes, no need for real names<br \/>\nstrip               =   yes<\/p>\n<p># subject_prefix - none, sorting by list-id is better<br \/>\nsubject_prefix      =<\/p>\n<p># subscribe_policy and unsubscribe_policy: users choice, thanks to<br \/>\n# announcements I can notice the changes<br \/>\nsubscribe_policy    =   open+confirm<br \/>\nunsubscribe_policy  =   open+confirm<br \/>\n<\/code><\/p><\/blockquote>\n<p>Replace the elements between double %-signs with the corresponding values where %%list-name%% is the full name of the mailinglist while %%list-shortname%% is the abbreviation we installed the email-forwarder for.<br \/>\nIn order to obtain a full configuration file with explicitly stating all the omitted values, and since I haven&#8217;t tried if the mailinglist is working at all with this rudimentary configuration, we immediately send<br \/>\n<code><br \/>\nwriteconfig %%list-name%% %%admin_password%%<br \/>\n<\/code><br \/>\nto <code>majordomo@sub.domain.tld<\/code>.<\/p>\n<p>A lot of the aforementioned criteria should be fulfilled by now. We still lack the cull unsubscribe-address which is already mentioned in the message-footer.<br \/>\nTo this end we set up a second mailing list <code>listname-unsubscribe<\/code> with the same game about mail-forwarders as before.<br \/>\nThis second list has exactly one member: <code>majordomo@sub.domain.tld<\/code> (you can add more members for debugging reasons).<br \/>\nThe relevant elements of the configuration file are:<\/p>\n<blockquote><p><code><br \/>\nnewconfig %%unsubscribe-list-name%% %%admin_password%%<br \/>\nadmin_passwd        =   %%admin_passwd%%<br \/>\napprove_passwd      =   %%approve_passwd%%<\/p>\n<p># noone else should gain any control over this list<br \/>\nget_access          =   closed<br \/>\nindex_access        =   closed<br \/>\ninfo_access         =   closed<br \/>\nintro_access        =   closed<br \/>\nsubscribe_policy    =   closed<br \/>\nunsubscribe_policy  =   closed<br \/>\nwhich_access        =   closed<br \/>\nwho_access          =   closed<\/p>\n<p># unsubscribe lists should not be seen by lists requests<br \/>\nnoadvertise         <<  END\n\/.\/\nEND\n\n# these two entries are actually responsible for the unsubscribe request\nmessage_fronter     <<  END\nunsubscribe %%list-name%%\nEND\nreply_to            = $SENDER\n<\/code><\/p><\/blockquote>\n<p>The subsequent<br \/>\n<code><br \/>\nwriteconfig %%unsubscribelist-name%% %%admin_password%%<br \/>\n<\/code><br \/>\ncompletes the configuration.<br \/>\nNow, sending a mail to <code>listname-unsubscribe@sub.domain.tld<\/code> triggers, independent of the content of the mail body, an unsubscribe request. Thanks to our main mailing list's settings we have to confirm this, so noone else can unsubscribe us easily.<\/p>\n<p>Actually, that's already quite fine. But the setup of digest and archives is so badly documented - and, moreover, seems to be simple only if you have your own server.<br \/>\nThis ist the point where I gave up, also leaving these questions open:<\/p>\n<ol>\n<li>Why majordomo?<\/li>\n<li>Whouldn't I choose a more modern mailing list systrem?<\/li>\n<li>Are there important security issues?<\/li>\n<\/ol>\n<p>I will choose one of the free mailing laist hosters available on the net.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>For several projects I recently felt the urge to dive into the world of mailing lists. Since I prefer having full control over such things rathern than delegating them somewhere, my first step was looking into my own webhosting package. It includes the the possibility to set up majordomo-mailinglists &#8211; I don&#8217;t know the exact [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0},"categories":[3,4],"tags":[34,38,40],"_links":{"self":[{"href":"https:\/\/blog.knofafo.de\/index.php?rest_route=\/wp\/v2\/posts\/382"}],"collection":[{"href":"https:\/\/blog.knofafo.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.knofafo.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.knofafo.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.knofafo.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=382"}],"version-history":[{"count":7,"href":"https:\/\/blog.knofafo.de\/index.php?rest_route=\/wp\/v2\/posts\/382\/revisions"}],"predecessor-version":[{"id":390,"href":"https:\/\/blog.knofafo.de\/index.php?rest_route=\/wp\/v2\/posts\/382\/revisions\/390"}],"wp:attachment":[{"href":"https:\/\/blog.knofafo.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=382"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.knofafo.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=382"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.knofafo.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=382"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}