How Do I Send Email in UNIX

  • Upload
    chinbom

  • View
    219

  • Download
    0

Embed Size (px)

Citation preview

  • 7/31/2019 How Do I Send Email in UNIX

    1/7

    #1

    The UNIX and Linux Forums

    > Top Forums> UNIX forDummies Questions &

    Answers> Answers toFrequently Asked Questions

    > How do I send email?

    MAIL question for

    HP-Unix O/S

    User Name Remember Me?

    Password

    google site

    Forums Register Forum Rules Links Man Pages Albums FAQ Users Calendar Today's Posts

    How do I send email?Learn how to send a UNIX or Linux email attachment from the command line.

    Thread Tools Search this Thread Display Modes

    02-26-2002

    dsthompsonRegistered User

    Join Date: Feb 2002

    Posts: 1

    Thanks: 0

    Thanked 0 Times in 0 Posts

    MAIL question for HP-Unix O/S

    Has anyone written a script to attached a text file when sending an email using the MAIL

    command?

    I wrote a Unix Script to email an end-user a text file. I want the file to be an attachment. I'vetried the unix command uuencode but this seems to be for a binary file. My text file is

    garbage (binary) when it's opened from within the email.

    ---------------------------------------------------------

    ****** SAMPLE SCRIPT BELOW ******

    ---------------------------------------------------------

    uuencode $LG_TOP/bin/ARPSONIC.txt $LG_TOP/bin/SONIC.txt > $LG_TOP/bin/dst.tst

    [email protected]

    [email protected]

    [email protected]

    echo 'To:'$to > $LG_TOP/bin/dst.tmp

    echo 'From:'$from >> $LG_TOP/bin/dst.tmp

    echo 'Cc:'$cc >> $LG_TOP/bin/dst.tmpecho 'Return-receipt: Yes' >> $LG_TOP/bin/dst.tmp

    echo 'Subject: UPS Logistics Files ' >> $LG_TOP/bin/dst.tmp

    echo 'Dear Customer' >> $LG_TOP/bin/dst.tmp

    echo ' '>> $LG_TOP/bin/dst.tmp

    echo 'Please find attached File' >> $LG_TOP/bin/dst.tmp

    echo ' '>> $LG_TOP/bin/dst.tmp

    echo 'Thank you'>> $LG_TOP/bin/dst.tmp

    echo ' '>> $LG_TOP/bin/dst.tmp

    echo 'Deborah S. Thompson'>> $LG_TOP/bin/dst.tmp

    cat $LG_TOP/bin/dst.tmp $LG_TOP/bin/dst.tst > $LG_TOP/bin/dst.tmp1

    L question for HP-Unix O/S - The UNIX and Linux Forums http://www.unix.com/how-do-i-send-email/4796-mail-quest

    7 11/18/2011

  • 7/31/2019 How Do I Send Email in UNIX

    2/7

    Remove advertisements

    #2

    RECIPIENTS=$to,$cc

    mail $RECIPIENTS < $LG_TOP/bin/dst.tmp1

    Sponsored Links

    02-26-2002

    PerderaboUnix Daemon

    Join Date: Aug 2001

    Location: Ashburn, Virginia

    Posts: 9,679

    Thanks: 26

    Thanked 206 Times in 139 Posts

    I had to write a script on HP-UX that would send an ascii file as a mime attachment but in

    such a way that a non mime mailer could read it. This was to satisfy all of our customers at

    once. Here it is...Code:

    #! /usr/bin/ksh

    L question for HP-Unix O/S - The UNIX and Linux Forums http://www.unix.com/how-do-i-send-email/4796-mail-quest

    7 11/18/2011

  • 7/31/2019 How Do I Send Email in UNIX

    3/7

    #

    # This script takes two ascii files and mails them. One file is

    # the main body of the message. The second file is sent as an ascii

    # mime attachment. But everything is kept in ascii so that users with

    # non-mime mail user agents can deal with it

    #

    #

    # Options#

    # -t addressee (required)

    # -a address (required)

    # -b body (required)

    # -s subject (optional)

    # -A attachment (optional)

    #

    # mimetool -t "Joe Blow" -a [email protected] -b body.txt -A attach.txt

    #

    # Here body.txt and attach.txt are files. The name of the body file

    # isn't too important. The name of the attachment file is important

    # since it will be sent as well as the contents. A Microsoft OS uses

    # the name to figure out what to do. It knows what a .txt file is but

    # it will get mixed up with a .junk file.

    ((error=0))

    while getopts ':t:a:b:A:s:' opt ; do

    case $opt in

    t)

    TO=$OPTARG

    ;;

    a)

    ADDRESS=$OPTARG

    ;;

    b)BODY=$OPTARG

    ;;

    A)

    ATTACHMENT=$OPTARG

    ;;

    s)

    SUBJECT=$OPTARG

    ;;

    \?)

    print -u2 what is -${OPTARG}?

    ((error=error+1))

    ;;

    :)print -u2 $OPTARG need an argument

    ((error=error+1))

    ;;

    esac

    done

    if [[ -z $TO ]] ; then

    print -u2 "-t NAME is required"

    ((error=error+1))

    fi

    L question for HP-Unix O/S - The UNIX and Linux Forums http://www.unix.com/how-do-i-send-email/4796-mail-quest

    7 11/18/2011

  • 7/31/2019 How Do I Send Email in UNIX

    4/7

    if [[ -z $ADDRESS ]] ; then

    print -u2 "-a ADDRESS is required"

    ((error=error+1))

    fi

    if [[ -z $BODY ]] ; then

    print -u2 "-b BODY is required"

    ((error=error+1))

    fi

    if [[ ! -f $BODY || ! -r $BODY ]] ; then

    print -u2 "-b $BODY is not a readable file"

    ((error=error+1))

    fi

    if [[ -z $ATTACHMENT ]] ; then

    print -u2 "-A ATTACHMENT is required"

    ((error=error+1))

    fi

    if [[ ! -f $ATTACHMENT || ! -r $ATTACHMENT ]] ; then

    print -u2 "-b $ATTACHMENT is not a readable file"

    ((error=error+1))

    fi

    if ((error)) ; then

    print -u2 "error in parameter list...exiting"

    exit 1

    fi

    pwentry=$(grep "^$(id -un):" /etc/passwd)

    ((index=0))

    while [[ $pwentry = *:* ]] ; dopwfield[index]=${pwentry%%${pwentry##*([!:])}}

    pwentry=${pwentry##*([!:]):}

    ((index=index+1))

    done

    pwfield[index]=${pwentry}

    myname=${pwfield[4]%%,*}

    myaddr=${pwfield[0]}

    BOUNDARY='=== This is the boundary between parts of the message. ==='

    {print - "From: $myname "

    print - "To: $TO "

    if [[ -n $SUBJECT ]] ; then

    print - 'Subject:' $SUBJECT

    fi

    print - 'MIME-Version: 1.0'

    print - 'Content-Type: MULTIPART/MIXED; '

    print - ' BOUNDARY='\"$BOUNDARY\"

    print -

    print - ' This message is in MIME format. But if you can see this,'

    question for HP-Unix O/S - The UNIX and Linux Forums http://www.unix.com/how-do-i-send-email/4796-mail-quest

    7 11/18/2011

  • 7/31/2019 How Do I Send Email in UNIX

    5/7

    Remove advertisements

    #3

    #4

    print - " you aren't using a MIME aware mail program. You shouldn't "

    print - ' have too many problems because this message is entirely in'

    print - ' ASCII and is designed to be somewhat readable with old '

    print - ' mail software.'

    print -

    print - "--${BOUNDARY}"

    print - 'Content-Type: TEXT/PLAIN; charset=US-ASCII'

    print -

    cat $BODY

    print -print -

    print - "--${BOUNDARY}"

    print - 'Content-Type: TEXT/PLAIN; charset=US-ASCII; name='${ATTACHMENT}

    print - 'Content-Disposition: attachment; filename='${ATTACHMENT}

    print -

    cat $ATTACHMENT

    print -

    print - "--${BOUNDARY}--"

    } | /usr/lib/sendmail $ADDRESS

    exit 0

    Last edited by Perderabo; 04-23-2002 at08:39 AM..

    Sponsored Links

    03-19-2002

    skipperGuest

    Posts: n/aBits: 0 [Banking]

    Great post. Worked first time. Thanks

    03-26-2002

    L question for HP-Unix O/S - The UNIX and Linux Forums http://www.unix.com/how-do-i-send-email/4796-mail-quest

    7 11/18/2011

  • 7/31/2019 How Do I Send Email in UNIX

    6/7

    Remove advertisements

    Kelam_MagnusRegistered User

    Join Date: Aug 2001

    Location: DFW McKinney, TX,

    Posts: 1,069

    Thanks: 0

    Thanked 2 Times in 2 Posts

    Excellent work! This is better than using ELM even though it works, but is a little awkward.

    Thanks for the great script.

    You should share this on www.unixreview.com. They have a contest for the best scripts each

    month.

    Sponsored Links

    sending files as attachments | multiple attachments

    More UNIX and Linux Forum Topics You Might Find Helpful

    Thread Thread Starter Forum Replies Last Post

    Question on SCP and Mail

    commandchris1234 UNIX for Dummies Questions & Answers 9

    01-20-2008

    03:54 PM

    mail question here lostinfaith UNIX for Dummies Questions & Answers 105-12-2006

    03:42 PM

    I am not able to send mail

    form unix to other mail

    accounts.

    chinnigd UNIX for Dummies Questions & Answers 104-06-2006

    09:31 AM

    can not send mail from

    unix server to

    company/yahoo mail

    b5fnpct UNIX for Dummies Questions & Answers 511-22-2002

    09:24 PM

    Mail question? yxiao UNIX for Dummies Questions & Answers 210-15-2002

    11:53 AM

    L question for HP-Unix O/S - The UNIX and Linux Forums http://www.unix.com/how-do-i-send-email/4796-mail-quest

    7 11/18/2011

  • 7/31/2019 How Do I Send Email in UNIX

    7/7

    Language Translations Powered by Google

    vBCredits v1.4 Copyright 2007 - 2008, PixelFX S tudios

    SEO by vBSEO

    All times are GMT -4. The time now is 03:15 PM.

    - Contact Us - The UNIX and Linux Forums - Learn UNIX and UNIX Commands - Archive -

    Top

    The UNIX and Linux Forums Content Copyright 1993-2011. All Rights Reserved.

    Forum Operations by The UNIX and Linux Forums

    Powered by: vBulletin, Copyright 2000 - 2006, Jelsoft Enterprises Limited.

    L question for HP-Unix O/S - The UNIX and Linux Forums http://www.unix.com/how-do-i-send-email/4796-mail-quest