Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

OS Linux

bash script en email's versturen

Anoniem
None
8 antwoorden
  • Ik heb een werkende mail server met een virus scanner.
    De virus scanner werkt via een command line.
    Nu heb ik een scriptje geschreven dat elke dag de server scant een een raportje maakt.

    Dit raportje wil ik via het commando mail versturen.
    Het mailtje komt keurig in de sendmail wachtrij te staan en wordt verstuurd. maar komt nooit aan.
    Als ik via een client met outlook een mailtje stuur na hetzelfde adres komt deze wel aan.

    Waarom kan ik geen (externe) mail versturen via de shell op mijn eigen mail server????

    Ik gebruik:
    Sendmail
    Bash
    Suse 7.2
  • Welke mailserver? Welke instellingen? Wat gebeurt er met het mailtje?
  • Waarom het mailtje niet aankomt kan je zien in /var/log/maillog of /var/log/mail

    Dan kan je precies zien waarom het fout gaat..

    M.
  • waarschijnlijk stuur je met outlook direct naar je provider ??

    laat je sendmail naar je provider sturen ? (relayhost = …)

    of zend je direct ? (dan moet je wel je dns ook oporde hebben)
  • Hoe verstuur je het mailtje precies?

    met /usr/bin/sendmail -t ?
    Dan moet je de headers meegeven aan de stream die je op standaard in meegeeft.

    Dus zoiets:[code:1:e1936a138f]
    {
    echo From: admin@host.nl
    echo To: adres@host.nl
    echo Subject: Log `date`
    echo
    cat log.txt
    } | /usr/bin/sendmail -t
    [/code:1:e1936a138f]
    de losse echo geeft een lege regel waarmee de header en de body van de e-mail worden gescheiden.

    zou moeten werken, zelfs met andere mailservers zoals postfix of qmail.
  • Ik stuurde me reports vanuit de viri scan op deze manier:

    crontab entry: virscan in /etc/cron.monthly/
    [code:1:f1803fd1b3]
    !/bin/sh
    /bin/nice –adjustment=+19
    oot/scripts/virscan.sh | grep -v 'Not scanned' -c -u | ( <<EOF
    This is an automated virus-scan report of '/' on alcatraz.kayjay.net
    EOF
    cat
    )|
    /bin/mail -s "Virus-scan report of alcatraz.kayjay.net" root
    [/code:1:f1803fd1b3]

    en root kende weer een doorverwijzing naar user "x" die zelfs met webmail de reports kon lezen.
  • Bedankt voor alle reacties…
    FF wat misverstanden wegwerken.

    Het gaat hier om een werkende mail server.
    De client met outlook verstuurd en ontvangt zijn mail via (suse linux) mailserver. het versturen van mailtjes werkt.

    De sendmail config is die standaard van suse en met yast geconfigureerd om de externe mailserver op te geven.

    Als ik in de wachtrij van sendmail kijk staat het email adres dat door de client via outlook wordt gestuurd is tussen "<>" en via het mail commando niet bijv:

    <iemand@isp.nl> Via een client met outlook
    iemand@isp.nl Via bash met het mail commando

    het mailtje dat met outllok is verstuurd komt wel aan en het mailtje via bash niet terwijl dezelfde mailserver wordt gebruikt.

    Het mailtje dat met bash werdt verstuurd komt terug met error 550.
    Dit is volgens mij een dns error

    Waarom werkt sendmail niet met het bash commando mail???
  • Welke mailserver geeft die 550 code?

    Welke headers staan er in het mailtje?

    Providers vereisen vaak een geldige From header. Als de From header zoiets bevat als MyScript@localhost dan zou dat best eens de reden kunnen zijn dat een server op het delivery path moeilijk doet.

    Outlook genereert waarschijnlijk de goede headers op basis van Options/Preferences, wat een verklaring zou kunnen zijn waarom het met Outlook wel goed gaat.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.