1*cdf0e10cSrcweir#!/bin/sh 2*cdf0e10cSrcweirURI_ENCODE="`dirname $0`/uri-encode" 3*cdf0e10cSrcweirFOPTS="" 4*cdf0e10cSrcweir 5*cdf0e10cSrcweir# linux file utility needs -L option to resolve symlinks 6*cdf0e10cSrcweirif [ "`uname -s`" = "Linux" ] 7*cdf0e10cSrcweirthen 8*cdf0e10cSrcweir FOPTS="-L" 9*cdf0e10cSrcweirfi 10*cdf0e10cSrcweir 11*cdf0e10cSrcweir# do not confuse the system mail clients with OOo and Java libraries 12*cdf0e10cSrcweirunset LD_LIBRARY_PATH 13*cdf0e10cSrcweir 14*cdf0e10cSrcweir# tries to locate the executable specified 15*cdf0e10cSrcweir# as first parameter in the user's path. 16*cdf0e10cSrcweirwhich() { 17*cdf0e10cSrcweir if [ ! -z "$1" ]; then 18*cdf0e10cSrcweir for i in `echo $PATH | sed -e 's/^:/.:/g' -e 's/:$/:./g' -e 's/::/:.:/g' -e 's/:/ /g'`; do 19*cdf0e10cSrcweir if [ -x "$i/$1" -a ! -d "$i/$1" ]; then 20*cdf0e10cSrcweir echo "$i/$1" 21*cdf0e10cSrcweir break; 22*cdf0e10cSrcweir fi 23*cdf0e10cSrcweir done 24*cdf0e10cSrcweir fi 25*cdf0e10cSrcweir} 26*cdf0e10cSrcweir 27*cdf0e10cSrcweir# checks for the original mozilla start script(s) 28*cdf0e10cSrcweir# and restrict the "-remote" semantics to those. 29*cdf0e10cSrcweirrun_mozilla() { 30*cdf0e10cSrcweir # find mozilla script in PATH if necessary 31*cdf0e10cSrcweir if [ "`basename $1`" = "$1" ]; then 32*cdf0e10cSrcweir moz=`which $1` 33*cdf0e10cSrcweir else 34*cdf0e10cSrcweir moz=$1 35*cdf0e10cSrcweir fi 36*cdf0e10cSrcweir 37*cdf0e10cSrcweir if file $FOPTS "$moz" | grep "script" > /dev/null && grep "[NM]PL" "$moz" > /dev/null; then 38*cdf0e10cSrcweir "$moz" -remote 'ping()' 2>/dev/null >/dev/null 39*cdf0e10cSrcweir if [ $? -eq 2 ]; then 40*cdf0e10cSrcweir "$1" -compose "$2" & 41*cdf0e10cSrcweir else 42*cdf0e10cSrcweir "$1" -remote "xfeDoCommand(composeMessage,$2)" & 43*cdf0e10cSrcweir fi 44*cdf0e10cSrcweir else 45*cdf0e10cSrcweir "$1" -compose "$2" & 46*cdf0e10cSrcweir fi 47*cdf0e10cSrcweir} 48*cdf0e10cSrcweir 49*cdf0e10cSrcweirif [ "$1" = "--mailclient" ]; then 50*cdf0e10cSrcweir shift 51*cdf0e10cSrcweir MAILER=$1 52*cdf0e10cSrcweir shift 53*cdf0e10cSrcweirfi 54*cdf0e10cSrcweir 55*cdf0e10cSrcweir# autodetect mail client from executable name 56*cdf0e10cSrcweircase `basename "$MAILER" | sed 's/-.*$//'` in 57*cdf0e10cSrcweir 58*cdf0e10cSrcweir iceape | mozilla | netscape | seamonkey | icedove | thunderbird) 59*cdf0e10cSrcweir 60*cdf0e10cSrcweir while [ "$1" != "" ]; do 61*cdf0e10cSrcweir case $1 in 62*cdf0e10cSrcweir --to) 63*cdf0e10cSrcweir TO=${TO:-}${TO:+,}$2 64*cdf0e10cSrcweir shift 65*cdf0e10cSrcweir ;; 66*cdf0e10cSrcweir --cc) 67*cdf0e10cSrcweir CC=${CC:-}${CC:+,}$2 68*cdf0e10cSrcweir shift 69*cdf0e10cSrcweir ;; 70*cdf0e10cSrcweir --bcc) 71*cdf0e10cSrcweir BCC=${BCC:-}${BCC:+,}$2 72*cdf0e10cSrcweir shift 73*cdf0e10cSrcweir ;; 74*cdf0e10cSrcweir --subject) 75*cdf0e10cSrcweir SUBJECT=$2 76*cdf0e10cSrcweir shift 77*cdf0e10cSrcweir ;; 78*cdf0e10cSrcweir --body) 79*cdf0e10cSrcweir BODY=$2 80*cdf0e10cSrcweir shift 81*cdf0e10cSrcweir ;; 82*cdf0e10cSrcweir --attach) 83*cdf0e10cSrcweir ATTACH=${ATTACH:-}${ATTACH:+,}`echo "file://$2" | ${URI_ENCODE}` 84*cdf0e10cSrcweir shift 85*cdf0e10cSrcweir ;; 86*cdf0e10cSrcweir *) 87*cdf0e10cSrcweir ;; 88*cdf0e10cSrcweir esac 89*cdf0e10cSrcweir shift; 90*cdf0e10cSrcweir done 91*cdf0e10cSrcweir 92*cdf0e10cSrcweir if [ "$TO" != "" ]; then 93*cdf0e10cSrcweir COMMAND=${COMMAND:-}${COMMAND:+,}to=${TO} 94*cdf0e10cSrcweir fi 95*cdf0e10cSrcweir if [ "$CC" != "" ]; then 96*cdf0e10cSrcweir COMMAND=${COMMAND:-}${COMMAND:+,}cc=${CC} 97*cdf0e10cSrcweir fi 98*cdf0e10cSrcweir if [ "$BCC" != "" ]; then 99*cdf0e10cSrcweir COMMAND=${COMMAND:-}${COMMAND:+,}bcc=${BCC} 100*cdf0e10cSrcweir fi 101*cdf0e10cSrcweir if [ "$SUBJECT" != "" ]; then 102*cdf0e10cSrcweir COMMAND=${COMMAND:-}${COMMAND:+,}subject=${SUBJECT} 103*cdf0e10cSrcweir fi 104*cdf0e10cSrcweir if [ "$BODY" != "" ]; then 105*cdf0e10cSrcweir COMMAND=${COMMAND:-}${COMMAND:+,}body=${BODY} 106*cdf0e10cSrcweir fi 107*cdf0e10cSrcweir if [ "$ATTACH" != "" ]; then 108*cdf0e10cSrcweir COMMAND=${COMMAND:-}${COMMAND:+,}attachment=${ATTACH} 109*cdf0e10cSrcweir fi 110*cdf0e10cSrcweir 111*cdf0e10cSrcweir run_mozilla "$MAILER" "$COMMAND" 112*cdf0e10cSrcweir ;; 113*cdf0e10cSrcweir 114*cdf0e10cSrcweir kmail) 115*cdf0e10cSrcweir 116*cdf0e10cSrcweir while [ "$1" != "" ]; do 117*cdf0e10cSrcweir case $1 in 118*cdf0e10cSrcweir --to) 119*cdf0e10cSrcweir TO="${TO:-}${TO:+,}$2" 120*cdf0e10cSrcweir shift 121*cdf0e10cSrcweir ;; 122*cdf0e10cSrcweir --cc) 123*cdf0e10cSrcweir CC="${CC:-}${CC:+,}$2" 124*cdf0e10cSrcweir shift 125*cdf0e10cSrcweir ;; 126*cdf0e10cSrcweir --bcc) 127*cdf0e10cSrcweir BCC="${BCC:-}${BCC:+,}$2" 128*cdf0e10cSrcweir shift 129*cdf0e10cSrcweir ;; 130*cdf0e10cSrcweir --subject) 131*cdf0e10cSrcweir SUBJECT="$2" 132*cdf0e10cSrcweir shift 133*cdf0e10cSrcweir ;; 134*cdf0e10cSrcweir --body) 135*cdf0e10cSrcweir BODY="$2" 136*cdf0e10cSrcweir shift 137*cdf0e10cSrcweir ;; 138*cdf0e10cSrcweir --attach) 139*cdf0e10cSrcweir ATTACH="$2" 140*cdf0e10cSrcweir shift 141*cdf0e10cSrcweir ;; 142*cdf0e10cSrcweir *) 143*cdf0e10cSrcweir ;; 144*cdf0e10cSrcweir esac 145*cdf0e10cSrcweir shift; 146*cdf0e10cSrcweir done 147*cdf0e10cSrcweir 148*cdf0e10cSrcweir ${MAILER} --composer ${CC:+--cc} ${CC:+"${CC}"} ${BCC:+--bcc} ${BCC:+"${BCC}"} \ 149*cdf0e10cSrcweir ${SUBJECT:+--subject} ${SUBJECT:+"${SUBJECT}"} ${BODY:+--body} ${BODY:+"${BODY}"} \ 150*cdf0e10cSrcweir ${ATTACH:+--attach} ${ATTACH:+"${ATTACH}"} ${TO:+"${TO}"} 151*cdf0e10cSrcweir ;; 152*cdf0e10cSrcweir 153*cdf0e10cSrcweir mutt) 154*cdf0e10cSrcweir 155*cdf0e10cSrcweir while [ "$1" != "" ]; do 156*cdf0e10cSrcweir case $1 in 157*cdf0e10cSrcweir --from) 158*cdf0e10cSrcweir FROM="$2" 159*cdf0e10cSrcweir shift 160*cdf0e10cSrcweir ;; 161*cdf0e10cSrcweir --to) 162*cdf0e10cSrcweir TO="${TO:-}${TO:+,}$2" 163*cdf0e10cSrcweir shift 164*cdf0e10cSrcweir ;; 165*cdf0e10cSrcweir --cc) 166*cdf0e10cSrcweir CC="${CC:-}${CC:+,}$2" 167*cdf0e10cSrcweir shift 168*cdf0e10cSrcweir ;; 169*cdf0e10cSrcweir --bcc) 170*cdf0e10cSrcweir BCC="${BCC:-}${BCC:+,}$2" 171*cdf0e10cSrcweir shift 172*cdf0e10cSrcweir ;; 173*cdf0e10cSrcweir --subject) 174*cdf0e10cSrcweir SUBJECT="$2" 175*cdf0e10cSrcweir shift 176*cdf0e10cSrcweir ;; 177*cdf0e10cSrcweir --body) 178*cdf0e10cSrcweir TEMPLATE="`basename $0`.mutt.XXXXXXXX" 179*cdf0e10cSrcweir BODY=`mktemp -q -t ${TEMPLATE}` 180*cdf0e10cSrcweir echo "$2" > $BODY 181*cdf0e10cSrcweir shift 182*cdf0e10cSrcweir ;; 183*cdf0e10cSrcweir --attach) 184*cdf0e10cSrcweir ATTACH="$2" 185*cdf0e10cSrcweir shift 186*cdf0e10cSrcweir ;; 187*cdf0e10cSrcweir *) 188*cdf0e10cSrcweir ;; 189*cdf0e10cSrcweir esac 190*cdf0e10cSrcweir shift; 191*cdf0e10cSrcweir done 192*cdf0e10cSrcweir 193*cdf0e10cSrcweir x-terminal-emulator -e ${MAILER} \ 194*cdf0e10cSrcweir ${FROM:+-e} ${FROM:+"set from=\"${FROM}\""} \ 195*cdf0e10cSrcweir ${CC:+-c} ${CC:+"${CC}"} \ 196*cdf0e10cSrcweir ${BCC:+-b} ${BCC:+"${BCC}"} \ 197*cdf0e10cSrcweir ${SUBJECT:+-s} ${SUBJECT:+"${SUBJECT}"} \ 198*cdf0e10cSrcweir ${BODY:+-i} ${BODY:+"${BODY}"} \ 199*cdf0e10cSrcweir ${ATTACH:+-a} ${ATTACH:+"${ATTACH}"} \ 200*cdf0e10cSrcweir ${TO:+"${TO}"} & 201*cdf0e10cSrcweir rm -f $BODY 202*cdf0e10cSrcweir ;; 203*cdf0e10cSrcweir 204*cdf0e10cSrcweir evolution) 205*cdf0e10cSrcweir 206*cdf0e10cSrcweir while [ "$1" != "" ]; do 207*cdf0e10cSrcweir case $1 in 208*cdf0e10cSrcweir --to) 209*cdf0e10cSrcweir if [ "${TO}" != "" ]; then 210*cdf0e10cSrcweir MAILTO="${MAILTO:-}${MAILTO:+&}to=$2" 211*cdf0e10cSrcweir else 212*cdf0e10cSrcweir TO="$2" 213*cdf0e10cSrcweir fi 214*cdf0e10cSrcweir shift 215*cdf0e10cSrcweir ;; 216*cdf0e10cSrcweir --cc) 217*cdf0e10cSrcweir MAILTO="${MAILTO:-}${MAILTO:+&}cc="`echo "$2" | ${URI_ENCODE}` 218*cdf0e10cSrcweir shift 219*cdf0e10cSrcweir ;; 220*cdf0e10cSrcweir --bcc) 221*cdf0e10cSrcweir MAILTO="${MAILTO:-}${MAILTO:+&}bcc="`echo "$2" | ${URI_ENCODE}` 222*cdf0e10cSrcweir shift 223*cdf0e10cSrcweir ;; 224*cdf0e10cSrcweir --subject) 225*cdf0e10cSrcweir MAILTO="${MAILTO:-}${MAILTO:+&}subject"=`echo "$2" | ${URI_ENCODE}` 226*cdf0e10cSrcweir shift 227*cdf0e10cSrcweir ;; 228*cdf0e10cSrcweir --body) 229*cdf0e10cSrcweir MAILTO="${MAILTO:-}${MAILTO:+&}body="`echo "$2" | ${URI_ENCODE}` 230*cdf0e10cSrcweir shift 231*cdf0e10cSrcweir ;; 232*cdf0e10cSrcweir --attach) 233*cdf0e10cSrcweir MAILTO="${MAILTO:-}${MAILTO:+&}attach="`echo "file://$2" | ${URI_ENCODE}` 234*cdf0e10cSrcweir shift 235*cdf0e10cSrcweir ;; 236*cdf0e10cSrcweir *) 237*cdf0e10cSrcweir ;; 238*cdf0e10cSrcweir esac 239*cdf0e10cSrcweir shift; 240*cdf0e10cSrcweir done 241*cdf0e10cSrcweir 242*cdf0e10cSrcweir MAILTO="mailto:${TO}?${MAILTO}" 243*cdf0e10cSrcweir ${MAILER} "${MAILTO}" & 244*cdf0e10cSrcweir ;; 245*cdf0e10cSrcweir 246*cdf0e10cSrcweir groupwise) 247*cdf0e10cSrcweir 248*cdf0e10cSrcweir while [ "$1" != "" ]; do 249*cdf0e10cSrcweir case $1 in 250*cdf0e10cSrcweir --to) 251*cdf0e10cSrcweir if [ "${TO}" != "" ]; then 252*cdf0e10cSrcweir MAILTO="${MAILTO:-}${MAILTO:+&}to=$2" 253*cdf0e10cSrcweir else 254*cdf0e10cSrcweir TO="$2" 255*cdf0e10cSrcweir fi 256*cdf0e10cSrcweir shift 257*cdf0e10cSrcweir ;; 258*cdf0e10cSrcweir --cc) 259*cdf0e10cSrcweir MAILTO="${MAILTO:-}${MAILTO:+&}cc="`echo "$2" | ${URI_ENCODE}` 260*cdf0e10cSrcweir shift 261*cdf0e10cSrcweir ;; 262*cdf0e10cSrcweir --bcc) 263*cdf0e10cSrcweir MAILTO="${MAILTO:-}${MAILTO:+&}bcc="`echo "$2" | ${URI_ENCODE}` 264*cdf0e10cSrcweir shift 265*cdf0e10cSrcweir ;; 266*cdf0e10cSrcweir --subject) 267*cdf0e10cSrcweir MAILTO="${MAILTO:-}${MAILTO:+&}subject"=`echo "$2" | ${URI_ENCODE}` 268*cdf0e10cSrcweir shift 269*cdf0e10cSrcweir ;; 270*cdf0e10cSrcweir --body) 271*cdf0e10cSrcweir MAILTO="${MAILTO:-}${MAILTO:+&}body="`echo "$2" | ${URI_ENCODE}` 272*cdf0e10cSrcweir shift 273*cdf0e10cSrcweir ;; 274*cdf0e10cSrcweir --attach) 275*cdf0e10cSrcweir MAILTO="${MAILTO:-}${MAILTO:+&}attachment="`echo "file://$2" | ${URI_ENCODE}` 276*cdf0e10cSrcweir shift 277*cdf0e10cSrcweir ;; 278*cdf0e10cSrcweir *) 279*cdf0e10cSrcweir ;; 280*cdf0e10cSrcweir esac 281*cdf0e10cSrcweir shift; 282*cdf0e10cSrcweir done 283*cdf0e10cSrcweir 284*cdf0e10cSrcweir MAILTO="mailto:${TO}?${MAILTO}" 285*cdf0e10cSrcweir ${MAILER} "${MAILTO}" & 286*cdf0e10cSrcweir ;; 287*cdf0e10cSrcweir 288*cdf0e10cSrcweir dtmail) 289*cdf0e10cSrcweir 290*cdf0e10cSrcweir while [ "$1" != "" ]; do 291*cdf0e10cSrcweir case $1 in 292*cdf0e10cSrcweir --to) 293*cdf0e10cSrcweir TO=${TO:-}${TO:+,}$2 294*cdf0e10cSrcweir shift 295*cdf0e10cSrcweir ;; 296*cdf0e10cSrcweir --attach) 297*cdf0e10cSrcweir ATTACH="$2" 298*cdf0e10cSrcweir shift 299*cdf0e10cSrcweir ;; 300*cdf0e10cSrcweir *) 301*cdf0e10cSrcweir ;; 302*cdf0e10cSrcweir esac 303*cdf0e10cSrcweir shift; 304*cdf0e10cSrcweir done 305*cdf0e10cSrcweir 306*cdf0e10cSrcweir ${MAILER} ${TO:+-T} ${TO:-} ${ATTACH:+-a} ${ATTACH:+"${ATTACH}"} 307*cdf0e10cSrcweir ;; 308*cdf0e10cSrcweir 309*cdf0e10cSrcweir sylpheed | claws) 310*cdf0e10cSrcweir 311*cdf0e10cSrcweir while [ "$1" != "" ]; do 312*cdf0e10cSrcweir case $1 in 313*cdf0e10cSrcweir --to) 314*cdf0e10cSrcweir TO=${TO:-}${TO:+,}$2 315*cdf0e10cSrcweir shift 316*cdf0e10cSrcweir ;; 317*cdf0e10cSrcweir --attach) 318*cdf0e10cSrcweir ATTACH="${ATTACH:-}${ATTACH:+ }$2" 319*cdf0e10cSrcweir shift 320*cdf0e10cSrcweir ;; 321*cdf0e10cSrcweir *) 322*cdf0e10cSrcweir ;; 323*cdf0e10cSrcweir esac 324*cdf0e10cSrcweir shift; 325*cdf0e10cSrcweir done 326*cdf0e10cSrcweir 327*cdf0e10cSrcweir ${MAILER} ${TO:+--compose} "${TO:-}" ${ATTACH:+--attach} "${ATTACH:-}" 328*cdf0e10cSrcweir ;; 329*cdf0e10cSrcweir 330*cdf0e10cSrcweir Mail | Thunderbird | *.app ) 331*cdf0e10cSrcweir 332*cdf0e10cSrcweir while [ "$1" != "" ]; do 333*cdf0e10cSrcweir case $1 in 334*cdf0e10cSrcweir --attach) 335*cdf0e10cSrcweir #i95688# fix filenames containing accented chars, whatever alien 336*cdf0e10cSrcweir ATTACH="${ATTACH:-}${ATTACH:+ }"`echo "file://$2" | ${URI_ENCODE}` 337*cdf0e10cSrcweir shift 338*cdf0e10cSrcweir ;; 339*cdf0e10cSrcweir *) 340*cdf0e10cSrcweir ;; 341*cdf0e10cSrcweir esac 342*cdf0e10cSrcweir shift; 343*cdf0e10cSrcweir done 344*cdf0e10cSrcweir /usr/bin/open -a "${MAILER}" ${ATTACH} 345*cdf0e10cSrcweir ;; 346*cdf0e10cSrcweir 347*cdf0e10cSrcweir "") 348*cdf0e10cSrcweir 349*cdf0e10cSrcweir # DESKTOP_LAUNCH, see http://freedesktop.org/pipermail/xdg/2004-August/004489.html 350*cdf0e10cSrcweir if [ -n "$DESKTOP_LAUNCH" ]; then 351*cdf0e10cSrcweir while [ "$1" != "" ]; do 352*cdf0e10cSrcweir case $1 in 353*cdf0e10cSrcweir --to) 354*cdf0e10cSrcweir if [ "${TO}" != "" ]; then 355*cdf0e10cSrcweir MAILTO="${MAILTO:-}${MAILTO:+&}to=$2" 356*cdf0e10cSrcweir else 357*cdf0e10cSrcweir TO="$2" 358*cdf0e10cSrcweir fi 359*cdf0e10cSrcweir shift 360*cdf0e10cSrcweir ;; 361*cdf0e10cSrcweir --cc) 362*cdf0e10cSrcweir MAILTO="${MAILTO:-}${MAILTO:+&}cc="`echo "$2" | ${URI_ENCODE}` 363*cdf0e10cSrcweir shift 364*cdf0e10cSrcweir ;; 365*cdf0e10cSrcweir --bcc) 366*cdf0e10cSrcweir MAILTO="${MAILTO:-}${MAILTO:+&}bcc="`echo "$2" | ${URI_ENCODE}` 367*cdf0e10cSrcweir shift 368*cdf0e10cSrcweir ;; 369*cdf0e10cSrcweir --subject) 370*cdf0e10cSrcweir MAILTO="${MAILTO:-}${MAILTO:+&}subject="`echo "$2" | ${URI_ENCODE}` 371*cdf0e10cSrcweir shift 372*cdf0e10cSrcweir ;; 373*cdf0e10cSrcweir --body) 374*cdf0e10cSrcweir MAILTO="${MAILTO:-}${MAILTO:+&}body="`echo "$2" | ${URI_ENCODE}` 375*cdf0e10cSrcweir shift 376*cdf0e10cSrcweir ;; 377*cdf0e10cSrcweir --attach) 378*cdf0e10cSrcweir MAILTO="${MAILTO:-}${MAILTO:+&}attachment="`echo "$2" | ${URI_ENCODE}` 379*cdf0e10cSrcweir shift 380*cdf0e10cSrcweir ;; 381*cdf0e10cSrcweir *) 382*cdf0e10cSrcweir ;; 383*cdf0e10cSrcweir esac 384*cdf0e10cSrcweir shift; 385*cdf0e10cSrcweir done 386*cdf0e10cSrcweir 387*cdf0e10cSrcweir MAILTO="mailto:${TO}?${MAILTO}" 388*cdf0e10cSrcweir ${DESKTOP_LAUNCH} "${MAILTO}" & 389*cdf0e10cSrcweir else 390*cdf0e10cSrcweir echo "Could not determine a mail client to use." 391*cdf0e10cSrcweir exit 2 392*cdf0e10cSrcweir fi 393*cdf0e10cSrcweir ;; 394*cdf0e10cSrcweir 395*cdf0e10cSrcweir *) 396*cdf0e10cSrcweir echo "Unsupported mail client: `basename $MAILER | sed 's/-.*^//'`" 397*cdf0e10cSrcweir exit 2 398*cdf0e10cSrcweir ;; 399*cdf0e10cSrcweiresac 400*cdf0e10cSrcweir 401*cdf0e10cSrcweirexit 0 402