| #!/bin/sh |
| # ************************************************************* |
| # |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| # |
| # ************************************************************* |
| URI_ENCODE="`dirname "$0"`/uri-encode" |
| FOPTS="" |
| |
| # linux file utility needs -L option to resolve symlinks |
| if [ "`uname -s`" = "Linux" ] |
| then |
| FOPTS="-L" |
| fi |
| |
| # do not confuse the system mail clients with OOo and Java libraries |
| unset LD_LIBRARY_PATH |
| |
| # tries to locate the executable specified |
| # as first parameter in the user's path. |
| which() { |
| if [ ! -z "$1" ]; then |
| for i in `echo $PATH | sed -e 's/^:/.:/g' -e 's/:$/:./g' -e 's/::/:.:/g' -e 's/:/ /g'`; do |
| if [ -x "$i/$1" -a ! -d "$i/$1" ]; then |
| echo "$i/$1" |
| break; |
| fi |
| done |
| fi |
| } |
| |
| # checks for the original mozilla start script(s) |
| # and restrict the "-remote" semantics to those. |
| run_mozilla() { |
| # find mozilla script in PATH if necessary |
| if [ "`basename $1`" = "$1" ]; then |
| moz=`which $1` |
| else |
| moz=$1 |
| fi |
| |
| if file $FOPTS "$moz" | grep "script" > /dev/null && grep "[NM]PL" "$moz" > /dev/null; then |
| "$moz" -remote 'ping()' 2>/dev/null >/dev/null |
| if [ $? -eq 2 ]; then |
| "$1" -compose "$2" & |
| else |
| "$1" -remote "xfeDoCommand(composeMessage,$2)" & |
| fi |
| else |
| "$1" -compose "$2" & |
| fi |
| } |
| |
| if [ "$1" = "--mailclient" ]; then |
| shift |
| MAILER=$1 |
| shift |
| fi |
| |
| # autodetect mail client from executable name |
| case `basename "$MAILER" | sed 's/-.*$//'` in |
| |
| iceape | mozilla | netscape | seamonkey | icedove | thunderbird) |
| |
| while [ "$1" != "" ]; do |
| case $1 in |
| --to) |
| TO=${TO:-}${TO:+,}$2 |
| shift |
| ;; |
| --cc) |
| CC=${CC:-}${CC:+,}$2 |
| shift |
| ;; |
| --bcc) |
| BCC=${BCC:-}${BCC:+,}$2 |
| shift |
| ;; |
| --subject) |
| SUBJECT=$2 |
| shift |
| ;; |
| --body) |
| BODY=$2 |
| shift |
| ;; |
| --attach) |
| ATTACH=${ATTACH:-}${ATTACH:+,}`echo "file://$2" | "${URI_ENCODE}"` |
| shift |
| ;; |
| *) |
| ;; |
| esac |
| shift; |
| done |
| |
| if [ "$TO" != "" ]; then |
| COMMAND=${COMMAND:-}${COMMAND:+,}to=\'${TO}\' |
| fi |
| if [ "$CC" != "" ]; then |
| COMMAND=${COMMAND:-}${COMMAND:+,}cc=\'${CC}\' |
| fi |
| if [ "$BCC" != "" ]; then |
| COMMAND=${COMMAND:-}${COMMAND:+,}bcc=\'${BCC}\' |
| fi |
| if [ "$SUBJECT" != "" ]; then |
| COMMAND=${COMMAND:-}${COMMAND:+,}subject=\'${SUBJECT}\' |
| fi |
| if [ "$BODY" != "" ]; then |
| COMMAND=${COMMAND:-}${COMMAND:+,}body=\'${BODY}\' |
| fi |
| if [ "$ATTACH" != "" ]; then |
| COMMAND=${COMMAND:-}${COMMAND:+,}attachment=\'${ATTACH}\' |
| fi |
| |
| run_mozilla "$MAILER" "$COMMAND" |
| ;; |
| |
| kmail) |
| |
| while [ "$1" != "" ]; do |
| case $1 in |
| --to) |
| TO="${TO:-}${TO:+,}$2" |
| shift |
| ;; |
| --cc) |
| CC="${CC:-}${CC:+,}$2" |
| shift |
| ;; |
| --bcc) |
| BCC="${BCC:-}${BCC:+,}$2" |
| shift |
| ;; |
| --subject) |
| SUBJECT="$2" |
| shift |
| ;; |
| --body) |
| BODY="$2" |
| shift |
| ;; |
| --from) |
| FROM="$2" |
| shift |
| ;; |
| --attach) |
| ATTACH="${ATTACH:-}${ATTACH:+ }--attach "`echo "file://$2" | "${URI_ENCODE}"` |
| shift |
| ;; |
| *) |
| ;; |
| esac |
| shift; |
| done |
| |
| ${MAILER} --composer \ |
| ${CC:+--cc} ${CC:+"${CC}"} \ |
| ${BCC:+--bcc} ${BCC:+"${BCC}"} \ |
| ${SUBJECT:+--subject} ${SUBJECT:+"${SUBJECT}"} \ |
| ${BODY:+--body} ${BODY:+"${BODY}"} \ |
| ${FROM:+--header} ${FROM:+"From: ${FROM}"} \ |
| ${ATTACH:+${ATTACH}} \ |
| ${TO:+"${TO}"} |
| ;; |
| |
| mutt) |
| |
| while [ "$1" != "" ]; do |
| case $1 in |
| --from) |
| FROM="$2" |
| shift |
| ;; |
| --to) |
| TO="${TO:-}${TO:+,}$2" |
| shift |
| ;; |
| --cc) |
| CC="${CC:-}${CC:+,}$2" |
| shift |
| ;; |
| --bcc) |
| BCC="${BCC:-}${BCC:+,}$2" |
| shift |
| ;; |
| --subject) |
| SUBJECT="$2" |
| shift |
| ;; |
| --body) |
| TEMPLATE="`basename $0`.mutt.XXXXXXXX" |
| BODY=`mktemp -q -t ${TEMPLATE}` |
| echo "$2" > $BODY |
| shift |
| ;; |
| --attach) |
| ATTACH="$2" |
| shift |
| ;; |
| *) |
| ;; |
| esac |
| shift; |
| done |
| |
| x-terminal-emulator -e ${MAILER} \ |
| ${FROM:+-e} ${FROM:+"set from=\"${FROM}\""} \ |
| ${CC:+-c} ${CC:+"${CC}"} \ |
| ${BCC:+-b} ${BCC:+"${BCC}"} \ |
| ${SUBJECT:+-s} ${SUBJECT:+"${SUBJECT}"} \ |
| ${BODY:+-i} ${BODY:+"${BODY}"} \ |
| ${ATTACH:+-a} ${ATTACH:+"${ATTACH}"} \ |
| ${TO:+"${TO}"} & |
| rm -f $BODY |
| ;; |
| |
| evolution) |
| |
| while [ "$1" != "" ]; do |
| case $1 in |
| --to) |
| if [ "${TO}" != "" ]; then |
| MAILTO="${MAILTO:-}${MAILTO:+&}to=$2" |
| else |
| TO="$2" |
| fi |
| shift |
| ;; |
| --cc) |
| MAILTO="${MAILTO:-}${MAILTO:+&}cc="`echo "$2" | "${URI_ENCODE}"` |
| shift |
| ;; |
| --bcc) |
| MAILTO="${MAILTO:-}${MAILTO:+&}bcc="`echo "$2" | "${URI_ENCODE}"` |
| shift |
| ;; |
| --subject) |
| MAILTO="${MAILTO:-}${MAILTO:+&}subject"=`echo "$2" | "${URI_ENCODE}"` |
| shift |
| ;; |
| --body) |
| MAILTO="${MAILTO:-}${MAILTO:+&}body="`echo "$2" | "${URI_ENCODE}"` |
| shift |
| ;; |
| --attach) |
| MAILTO="${MAILTO:-}${MAILTO:+&}attach="`echo "file://$2" | "${URI_ENCODE}"` |
| shift |
| ;; |
| *) |
| ;; |
| esac |
| shift; |
| done |
| |
| MAILTO="mailto:${TO}?${MAILTO}" |
| ${MAILER} "${MAILTO}" & |
| ;; |
| |
| groupwise) |
| |
| while [ "$1" != "" ]; do |
| case $1 in |
| --to) |
| if [ "${TO}" != "" ]; then |
| MAILTO="${MAILTO:-}${MAILTO:+&}to=$2" |
| else |
| TO="$2" |
| fi |
| shift |
| ;; |
| --cc) |
| MAILTO="${MAILTO:-}${MAILTO:+&}cc="`echo "$2" | "${URI_ENCODE}"` |
| shift |
| ;; |
| --bcc) |
| MAILTO="${MAILTO:-}${MAILTO:+&}bcc="`echo "$2" | "${URI_ENCODE}"` |
| shift |
| ;; |
| --subject) |
| MAILTO="${MAILTO:-}${MAILTO:+&}subject"=`echo "$2" | "${URI_ENCODE}"` |
| shift |
| ;; |
| --body) |
| MAILTO="${MAILTO:-}${MAILTO:+&}body="`echo "$2" | "${URI_ENCODE}"` |
| shift |
| ;; |
| --attach) |
| MAILTO="${MAILTO:-}${MAILTO:+&}attachment="`echo "file://$2" | "${URI_ENCODE}"` |
| shift |
| ;; |
| *) |
| ;; |
| esac |
| shift; |
| done |
| |
| MAILTO="mailto:${TO}?${MAILTO}" |
| ${MAILER} "${MAILTO}" & |
| ;; |
| |
| dtmail) |
| |
| while [ "$1" != "" ]; do |
| case $1 in |
| --to) |
| TO=${TO:-}${TO:+,}$2 |
| shift |
| ;; |
| --attach) |
| ATTACH="$2" |
| shift |
| ;; |
| *) |
| ;; |
| esac |
| shift; |
| done |
| |
| ${MAILER} ${TO:+-T} ${TO:-} ${ATTACH:+-a} ${ATTACH:+"${ATTACH}"} |
| ;; |
| |
| sylpheed | claws) |
| |
| while [ "$1" != "" ]; do |
| case $1 in |
| --to) |
| TO=${TO:-}${TO:+,}$2 |
| shift |
| ;; |
| --attach) |
| ATTACH="${ATTACH:-}${ATTACH:+ }$2" |
| shift |
| ;; |
| *) |
| ;; |
| esac |
| shift; |
| done |
| |
| ${MAILER} ${TO:+--compose} "${TO:-}" ${ATTACH:+--attach} "${ATTACH:-}" |
| ;; |
| |
| Mail | Thunderbird | *.app ) |
| |
| while [ "$1" != "" ]; do |
| case $1 in |
| --attach) |
| #i95688# fix filenames containing accented chars, whatever alien |
| ATTACH="${ATTACH:-}${ATTACH:+ }"`echo "file://$2" | "${URI_ENCODE}"` |
| shift |
| ;; |
| *) |
| ;; |
| esac |
| shift; |
| done |
| /usr/bin/open -a "${MAILER}" ${ATTACH} |
| ;; |
| |
| "") |
| |
| # DESKTOP_LAUNCH, see http://freedesktop.org/pipermail/xdg/2004-August/004489.html |
| if [ -n "$DESKTOP_LAUNCH" ]; then |
| while [ "$1" != "" ]; do |
| case $1 in |
| --to) |
| if [ "${TO}" != "" ]; then |
| MAILTO="${MAILTO:-}${MAILTO:+&}to=$2" |
| else |
| TO="$2" |
| fi |
| shift |
| ;; |
| --cc) |
| MAILTO="${MAILTO:-}${MAILTO:+&}cc="`echo "$2" | "${URI_ENCODE}"` |
| shift |
| ;; |
| --bcc) |
| MAILTO="${MAILTO:-}${MAILTO:+&}bcc="`echo "$2" | "${URI_ENCODE}"` |
| shift |
| ;; |
| --subject) |
| MAILTO="${MAILTO:-}${MAILTO:+&}subject="`echo "$2" | "${URI_ENCODE}"` |
| shift |
| ;; |
| --body) |
| MAILTO="${MAILTO:-}${MAILTO:+&}body="`echo "$2" | "${URI_ENCODE}"` |
| shift |
| ;; |
| --attach) |
| MAILTO="${MAILTO:-}${MAILTO:+&}attachment="`echo "$2" | "${URI_ENCODE}"` |
| shift |
| ;; |
| *) |
| ;; |
| esac |
| shift; |
| done |
| |
| MAILTO="mailto:${TO}?${MAILTO}" |
| ${DESKTOP_LAUNCH} "${MAILTO}" & |
| else |
| echo "Could not determine a mail client to use." |
| exit 2 |
| fi |
| ;; |
| |
| *) |
| echo "Unsupported mail client: `basename $MAILER | sed 's/-.*^//'`" |
| exit 2 |
| ;; |
| esac |
| |
| exit 0 |