[DEBIAN] Bugzilla mail interface

Pagina: 1
Acties:
  • 101 views sinds 30-01-2008
  • Reageer

  • borgdaville
  • Registratie: December 2000
  • Laatst online: 17:52
Ik probeer al een tijdje de Bugzilla Mail Interface aan de praat te krijgen. Ik ben er al achter dat er hier niet zoveel Bugzilla mensen hier zitten, daarvoor probeer ik het een beetje algemeen Linux(Debian) te houden.

Allereerste de achtergrond: Bugzilla is een een bugtracking systeem, mbv de mail interface kun je bugs toevoegen of wijzigen via email. De mail interface word ook gebruikt om Bugzilla met CVS te integreren.

Probleem: ik snap niks van de instructie om dit aan de praat te krijgen. Ik rommel al een tijdje met LInux en heb zelfs in de productie omgeving een server staan die perfect loopt(CVS/Bugzilla/Apache/Samba/MySQL), ik probeer nu in een testomgeving CVS en Bugzilla te koppelen.

Onderstaand een stukje uit de readme.mailif die in de Contrib map van Bugzilla te vinden is:
code:
1
2
3
4
5
6
7
8
9
10
11
12
Next is to add a user who receives the bugmails, e. g. bugmail. Create a 
mail account and a home directory for the user. 

The mailinterface script bug_email.pl needs to get the mail through stdin.
I use procmail for that, with the following line in the .procmailrc:

BUGZILLA_HOME=/usr/local/httpd/htdocs/bugzilla
:0 c
|(cd $BUGZILLA_HOME/contrib; ./bug_email.pl)

This defines the Bugzilla directory as the variable BUGZILLA_HOME and passes
all incoming mail to the script after cd'ing into the bugzilla home.


Ik heb met add user bugzilla de user "bugzilla" aangemaakt. Deze heeft ook een homefolder(/home/bugzilla).

In principe heeft deze gebruiker locale mail(Debian: mail ENTER). Echter ik denk niet dat dit is wat er word bedoeld in de readme file.

Mijn gedachte: ik wil de bugzilla gebruiker een pop mail account laten uitlezen waarna ik mails stuur die door Bugzilla verwerkt moeten worden.

Ik heb al overal gezocht naar meer info, maar ik kom der maar niet uit. Ik ben bang dat er iets grondig fout zit in mijn manier van aanpak. En mijn gebrek aan ervaring met mail in linux helpt ook niet. Kan mij iemand verder opweg helpen?

Familieman, nerd, mooi weer fietser, buitenmens en levensgenieter...


  • borgdaville
  • Registratie: December 2000
  • Laatst online: 17:52
niemand?

Familieman, nerd, mooi weer fietser, buitenmens en levensgenieter...


Verwijderd

Het is toch duidelijk? Je moet een bestand .procmailrc aanmaken in de Bugzilla-homedir (/home/bugzilla/.procmailrc) met de volgende inhoud:
BUGZILLA_HOME=/usr/local/httpd/htdocs/bugzilla
:0 c
|(cd $BUGZILLA_HOME/contrib; ./bug_email.pl)


Uiteraard moet je daarvoor de tool procmail geinstalleerd hebben:
apt-get install procmail


En moet je procmail configureren voor je MTA (wsl. Exim of Postfix), zie daarvoor de vele howto's op het internet. Nu komt voortaan alle mail voor bugzilla@jouwhost aan via procmail, die het doorspeelt aan het script "bug_email.pl"

Mocht je dus een POP-box willen leegtrekken, dan moet je er met fetchmail voor zorgen dat de mail voor die popbox aankomt bij bugzilla@jouwhost, en alles komt bij het script bug_email.pl terecht.

[ Voor 14% gewijzigd door Verwijderd op 04-10-2006 22:37 . Reden: Info over POP/fetchmail toegevoegd ]


  • borgdaville
  • Registratie: December 2000
  • Laatst online: 17:52
Verwijderd schreef op woensdag 04 oktober 2006 @ 22:36:
Het is toch duidelijk? Je moet een bestand .procmailrc aanmaken in de Bugzilla-homedir (/home/bugzilla/.procmailrc) met de volgende inhoud:
BUGZILLA_HOME=/usr/local/httpd/htdocs/bugzilla
:0 c
|(cd $BUGZILLA_HOME/contrib; ./bug_email.pl)


Uiteraard moet je daarvoor de tool procmail geinstalleerd hebben:
apt-get install procmail


En moet je procmail configureren voor je MTA (wsl. Exim of Postfix), zie daarvoor de vele howto's op het internet. Nu komt voortaan alle mail voor bugzilla@jouwhost aan via procmail, die het doorspeelt aan het script "bug_email.pl"

Mocht je dus een POP-box willen leegtrekken, dan moet je er met fetchmail voor zorgen dat de mail voor die popbox aankomt bij bugzilla@jouwhost, en alles komt bij het script bug_email.pl terecht.
3 weken later, eindelijk weer tijd om er mee verder te gaan, na een aantal uren stoeien ben ik al een heel stuk verder. Nu nog 1 .pl scriptje wat niet wil :(

ik heb een gebruiker gemaakt bugzilla, deze ontvangt netjes bij een commit emailtjes met [Bug <nr>] als onderwerp en onderstaand als body:
code:
1
2
3
4
5
6
7
CVS COMMIT
LOG MESSAGE:
  CVS: Please fill in the above fields with information about your checkin.
  CVS: Make sure that you know for certain what you are checking in.
BRANCH: HEAD
FILES CHECKED IN:
  \/test.txt\


Vervolgens moet .procmailrc doorsturen naar bugzilla_email_append.pl, in .procmailrc ziet dat er zo uit:
code:
1
2
3
4
:0 
* ^Subject: .*\[Bug .*\]
RESULT=|(cd $BUGZILLA_HOME && ./bugzilla_email_append.pl)
#|echo `date '+%d.%m.%y %H:%M:  '` $RESULT >> $HOME/bug_email.log


Met die 4e regel heb ik getest of .procmailrc mail afhandeling werkt, en dat doet ie, die log file word gegenereerd als ik het #--teken verwijder.

ook die BUGZILLA_HOME is goed, en bugzilla_email_append.pl bestaat.

Ik heb gegoogled en geprobeerd, maar ik kom niet meer verder. Ik heb hier ook totaal geen ervaring mee.

die mail zou via stdin worden doorgestuurd naar dat .pl script. Mer er gebeurt niets, of er gaat wat fout. Ik kan in de logboeken geen fouten zien terwijl er wel een foutafhandeling in dat .pl bestand zit.

Verder vraag ik me af hoe ik dat script handmatig kan testen. Ik kan wel ./bugzilla_email.append.pl doen maar dan kom ik in een soort terminal waar ik niet verder kom.

Mijn vraag dus: waarom werkt het niet? in welk logboek moet ik zoeken voor meer info(foutmeldingen)? Wie heeft ervaring met mailtjes naar een pl script sturen vanuit .procmailrc?

Familieman, nerd, mooi weer fietser, buitenmens en levensgenieter...


  • borgdaville
  • Registratie: December 2000
  • Laatst online: 17:52
ik ben weer een stapje verder, helaas word er niet enthousiast gereageerd op dit topic. Waarschijnlijk omdat weinig mensen ervaring met Bugzilla hebben. Ik probeer dit verhaaltje dan ook maar zo algemeen mogelijk te houden.

Allereerst het script werkt als ik het handmatig test:
code:
1
2
3
4
5
6
7
8
rltsft-testserver:/var/www# cat /backup/testmail.txt | ( cd /var/www/bugzilla-2.22/contrib/ && ./bugzilla_email_append.pl)
Dealing with the sender msintfiet@rialtosoft.nl
SenderShort is msintfiet@rialtosoft.nl
The sendershort is now msintfiet@rialtosoft.nl
The subject is [Bug 4] CVS Checkin

The bugid is 4
Did we find the bug? 4-


Vervolgens heb ik in .procmailrc logging aangezet, met LOGFILE= en VERBOSE=on . Dit levert interessante info op:
code:
1
2
3
4
5
6
7
8
procmail: Match on "^Subject: .*\[Bug .*\]"
procmail: Assigning "RESULT="
procmail: Executing "(cd $BUGZILLA_HOME && ./bugzilla_email_append.pl -t)"
Can't locate Bugzilla/DB.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl . contrib . ../.) at globals.pl line 34.
BEGIN failed--compilation aborted at globals.pl line 34.
Compilation failed in require at contrib/BugzillaEmail.pm line 31.
Compilation failed in require at ./bugzilla_email_append.pl line 41.
BEGIN failed--compilation aborted at ./bugzilla_email_append.pl line 41.


Nu heb zelf natuurlijk al het 1 en ander geprobeerd, helaas zonder resultaat:
  1. Zoals 777 rechten op DB.pm, om te testen of het aan de rechten ligt. Standaard zijn de rechten 640 voor root.www-data
  2. In bugzilla_email_append.pl heb ik dit toegevoegd:
    code:
    1
    
    push @INC, "/var/www/bugzilla-2.22";
Ik snap er helemaal niets van, script en perl installatie moet goed zijn omdat het vanaf de commandline gewoon werkt. En ik weet niet onder welke user die .procmailrc werkt, maar met rechten 777 zou dat ook niet moeten uitmaken.

Het enige wat ik nog kan bedenken is dat procmail de email niet goeddoorgeeft aan het script(maar dat lijkt me eigenlijk ook raar).

Wie kan mij helpen????

Familieman, nerd, mooi weer fietser, buitenmens en levensgenieter...


  • borgdaville
  • Registratie: December 2000
  • Laatst online: 17:52
potverdrieduppeltjes.....ARGGGGGGG!!!

Het werkt _/-\o_

Echter heel smerig, het was dus toch een rechten verhaal. 777 op DB.pm heeft geen zin als op de map waarin hij staat wel nog beperkende rechten zitten |:( |:(

Toen die in de map mocht, kwam ie met andere files die ie niet kon vinden. Ook ivm met rechten. Ik heb dit even gedaan, maar uiteindelijk maar 777 op de hele bugzilla map gedaan 8)7 omdat ik er gewoon achter moet komen met welke user procmail werkt. Zodat ik de rechten netjes kan stellen.

Mijn vraag is nu dus: onder welke user doet procmail die scriptjes runnen?

Hoe simpel kan het zijn:
Procmail runt gewoon onder de gebruiker waar de mailbox van is. Mijn problemen zijn opelost door de mailuser(bugzilla) toe te voegen aan de www-data groep.

[ Voor 13% gewijzigd door borgdaville op 31-10-2006 10:47 ]

Familieman, nerd, mooi weer fietser, buitenmens en levensgenieter...

Pagina: 1