Re: mj_create_list fails with postfix
Daniel Liston <[email protected]> Tue, 07 Oct 2008 23:36:24 -0500
| Newsgroups | gmane.mail.majordomo.general |
|---|---|
| Message-ID | <[email protected]> |
I have never used majorcool, but I did experiment with it late in the 20th century. :) I think the problem is/was that majorcool is older than most replacements for sendmail so does not have logic to support them. Even sendmail itself has added so many security enhancements, that sendmail -bv does not return the same results for different users. "sendmail -bv $list" if executed from the command line produces different results based on the uid executing the command and whether or not the value of $list is a local or fully qualified email address. On Fedora 8 as root; > 19:05:30 [root mqueue]# sendmail -bv dliston > dliston... deliverable: mailer local, user dliston > 19:05:40 [root mqueue]# sendmail -bv [email protected] > [email protected]... deliverable: mailer relay, host mail.sonny.com, user [email protected] The same commands as dliston (a TrustedUser), and member of the mail group; > 19:09:21 [dliston ~]$ sendmail -bv dliston > Notice: -bv may give misleading output for non-privileged user > can not chdir(/var/spool/mqueue/): Permission denied > Program mode requires special privileges, e.g., root or TrustedUser. > 19:09:32 [dliston ~]$ sendmail -bv [email protected] > Notice: -bv may give misleading output for non-privileged user > can not chdir(/var/spool/mqueue/): Permission denied > Program mode requires special privileges, e.g., root or TrustedUser. Based on the above, I have a feeling that even if I install majorcool on a system that uses sendmail, the mj_create_list routine might need to be tweaked. On my system, I changed the 700 permission to 750 on /var/spool/mqueue and added myself and majordomo to the mail and smmsp groups to finally get reasonable output from the sendmail -bv <address> command. You might have to do something similar for postfix. The object of the sendmail -bv is to verify an address exists. In the case of creating a list, this logic is reversed to make sure you are NOT attempting to create an address that already exists before actually creating it. If sendmail -bv $list results in $list... deliverable, the address already exists and you should get a squawk. If the result is $list... User unknown, the routine should continue and create the new list. That is about as far as I can go to help with postfix or majorcool. Sorry, Dan Liston Duncan Cunningham wrote: > $sendmail_command is defined as /usr/sbin/sendmail. /usr/sbin/sendmail > is a symlink to /usr/sbin/mailwrapper. The mailwrapper allows programs > to use postfix as if it were sendmail. mailer and bounce_mailer > variables are defined as : > > $mailer = "$sendmail_command -oi -oee -f\$sender"; > $bounce_mailer = "$sendmail_command -oi -oee -f\$sender -t"; > > Lastly, I am trying to use the create list function with majorcool. > > Duncan Cunningham > > Daniel Liston wrote: >> Hi Duncan, >> >> $sendmail_command is defined in the majordomo.cf file. Is yours >> pointed to >> postfix? Also of interest are the $mailer definition and comments. >> >> # $sendmail_command -- Pathname to the sendmail program >> # usually /usr/lib/sendmail, but some newer BSD >> systems >> # seem to prefer /usr/sbin/sendmail >> # >> # $sendmail_command = "/usr/lib/sendmail"; >> $sendmail_command = "/usr/sbin/sendmail"; >> >> # $mailer -- What program and args do I use to send mail to the list? >> # $bounce_mailer -- What is used to send mail anywhere else? >> # The variables $to, $from, $subject, and $sender can be interpolated >> into >> # this command line. Note, however, that the $to, $from, and $subject >> # variables may be provided by the person sending mail, and much mischief >> # can be had by playing with this variable. It is perfectly safe to use >> # $sender, but the others are insecure. >> # >> # Sendmail option -oi: Do not take a . on a line by itself as the >> message >> # terminator. >> # Sendmail option -oee: Force sendmail to exit with a zero exit status if >> # if it's not going to give useful information. >> # >> $mailer = "$sendmail_command -oi -oee -f\$sender"; >> $bounce_mailer = "$sendmail_command -oi -oee -f\$sender -t"; >> >> # You can special case the mailer used to deliver outbound mail as >> follows: >> # >> # To use TLB and use no outgoing alias: >> # if ($main'program_name eq 'mj_resend' && $opt_l eq 'test-list') { >> # $mailer = "/usr/local/majordomo/tlb /usr/local/lists/${opt_l}.tlb"; >> # } >> # >> # To use a different Sendmail queue for this list's mail: >> # if ($main'program_name eq 'mj_resend' && $opt_l eq 'test-list') { >> # $mailer = "$sendmail_command -oQ /var/spool/listq -f\$sender"; >> # } >> >> Lastly, are you using the create list function of majorcool with >> majorcool, >> or are you trying to use it as in independent application? If the >> latter, >> you might be interested in trying out a script I wrote a few years >> back at; >> >> ftp://ftp.ccsf.org/majordomo-contrib/listadd5.pl.gz >> >> Dan Liston >> >> Duncan Cunningham wrote: >>> Hi, >>> >>> I am trying to get the mj_create_list script from majorcool working >>> with majordomo. When I try to create a list through majorcool using >>> the script, it errors out saying: Checking for existing aliases... >>> address '$list' already exists. It doesn't matter what I call the >>> list, it will fail. I did some poking around in the script and the >>> following line causes the failure. >>> >>> &squawk("address '$list' already exists") >>> unless system("$sendmail_command -bv $list >/dev/null"); >>> >>> We are using postfix for mailing and from what I can tell, postfix >>> will return 0 whether $list exists or not, causing the squawk command >>> to always execute. Anyone have any ideas of how I can get this >>> working with postfix? >>> >>> Thanks, >>> Duncan Cunningham >>> > >