0

Google Chrome の小さなアプリ ウィンドウで Web ページから mailto リンクを開くための小さなスクリプトを作成しています。

これまでのところ、私はこれを持っています:

#!/bin/sh

notify-send "Opening Gmail" "`echo $1`" -i /usr/local/share/icons/hicolor/48x48/apps/google-chrome.png -t 5000
google-chrome -app="https://mail.google.com/mail/?extsrc=mailto&url=`echo $1`"

これはうまく機能します-しかし、メール受信者を通知に追加したい-このようなもの-しかし、件名などを含む可能性のあるmailtoリンクからメールを取得するには正規表現が必要です..

#!/bin/sh

$str = preg_replace('#<a.+?href="mailto:(.*?)".+?</a>#', "$1", $str);
notify-send "Opening Gmail" "`echo $str`" -i /usr/local/share/icons/hicolor/48x48/apps/google-chrome.png -t 5000
google-chrome -app="https://mail.google.com/mail/?extsrc=mailto&url=`echo $1`"

これは動作しません..

何か案は?

更新:ここに作業コードがあります:

#!/bin/sh

str=$(echo $1|sed 's/.*mailto:\([^?]*\)?.*/\1/')
notify-send "Opening Gmail" "to: `echo $str`" -i /usr/local/share/icons/hicolor/48x48/apps/google-chrome.png -t 5000
google-chrome -app="https://mail.google.com/mail/?extsrc=mailto&url=`echo $1`"
4

2 に答える 2

1

このように書くと、シェルではありません:)

正規表現を使用するためのサンプル文字列を提供できますか? 基本的には、アドレス以外のすべてをカットするsed呼び出しになります。RFC によると、メールアドレスは非常に複雑になる可能性があるため、単純なアプローチはほとんどの場合に機能しますが、常に機能するとは限りません。

のようなものから始めてみてください

sed 's/.*mailto:\([^?]*\)?.*/\1/'

したがって、次のように使用することをお勧めします。

str=$(echo $1|sed 's/.*mailto:\([^?]*\)?.*/\1/')
于 2011-02-03T15:11:23.400 に答える
0

すごい!私はあなたのスクリプトを入手し、より適切に機能するようにいくつかの変更を加えました。

#!/bin/sh

str=$(echo $1|sed 's/.*mailto:\([^?]*\)?.*/\1/')
notify-send "Abrindo Gmail" "to: `echo $str`" -i /usr/local/share/icons/hicolor/48x48/apps/google-chrome.png -t 5000
chromium-browser "https://mail.google.com/mail/?view=cm&fs=1&tf=1&source=mailto&to=$1"
于 2011-08-14T20:48:17.023 に答える