eMail

[AppleScripts]メールリンクを作成する(Windows,LiveMail,コピペ対応)【その2】

その1はこちら

https://force4u.cocolog-nifty.com/skywalker/2016/02/applescriptswin.html


----

メールアドレス用のリンク
mailto

Macや最近のWindows用

LiveMail等のSJISでアドレス部を受け取りたいメーラーで別ければ良いわけです

ブラウザやOS判定は出来ても
デフォルトのメーラーの判定は出来ませんから
そこは
人間がやれば良いって事で リンクを別にしました。


リンクは
1:メール本文に宛先の名前が入るタイプ
2:宛先部に名前や部署が入るタイプ
3:メールアドレスだけのタイプ

4:コピペ用に便利につかえるテキスト

4つ用意しました(やり過ぎか…笑)

------
1:メール本文に宛先の名前が入るタイプ

Force4u_07_392x248

------
2:宛先部に名前や部署が入るタイプ

Force4u_06_317x148


------
3:メールアドレスだけのタイプ

Force4u_02_351x152

------
4:コピペ用に便利につかえるテキスト
この部分はFormのinput textを利用しています

Force4u_01_450


-------------
まずは
エクセルファイルを
タブ区切りテキストで保存します。

Force4u_08_621x448


出来上がったタブ区切りテキストを選択して
実行するだけです。

ソースはこちらから

https://github.com/force4u/TabText2MailLink.scpt


出来上がりのHTMLコードのサンプルはこちら
https://force4u.cocolog-nifty.com/skywalker/files/email_List_sample.html

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

(*
TabText2MailLink
タブ区切りテキストからHTMLを生成します。
メールアドレスリンク部を【所属】名前<メールアドレス>の形式で記載し
ユーザーがリンクしたときに、メールアドレス部に氏名が入るようにしています。
WindowsLiveMailS-JISエンコードにも対応しています。

20160206 初回作成
20160207 一部修正 コピー用にテキストエリアを追加

*)



------------------------------------ 始まり
on run
---プロンプトの文言改行が使えます\nを入れます
set theWithPrompt to "タブテキストをメールリンクに変換"
---ファイル選択ダイアログのデフォルトのディレクトリ
tell application "Finder"
---ダイアログの開き先を指定
set theDefaultLocation to (container of (path to me)) as alias
end tell
---Uniform Type Identifier指定
set theFileTypeList to "public.plain-text,com.apple.traditional-mac-plain-text" as text
---のファイルタイプをリスト形式に整形する
---Uniform Type Identifier用に区切り文字をカンマに
set AppleScript's text item delimiters to {","}
---Uniform Type Identifierをリストに格納する
set theFileTypeList to every text item of theFileTypeList
---ダイアログを出して選択されたファイルは「open」に渡す
open (choose file default location theDefaultLocation ¬
with prompt theWithPrompt ¬
of type theFileTypeList ¬
invisibles true ¬
with multiple selections allowed without showing package contents)
end run


on open objOpenDrop
---Openするファイルをエイリアスで取得
set theFileAlias to objOpenDrop as alias
---選択したファイルのUNIXパスを取得
set theUnixPass to POSIX path of theFileAlias as text
---ファイルをUTF8形式で読み込み
set theData to (do shell script "cat '" & theUnixPass & "'") as «class utf8»
---区切り文字をMac改行に変換
set AppleScript's text item delimiters to {"\r"}
---改行毎にリスト形式に格納
set retListVal to (every text item of theData) as list
-----行数カウンタ初期化
set numListLine to count of retListVal
---読み込み開始行を初期化
set numLine to 1 as number
--タブインデックス用のカウンタ初期化
set numTabIndex to 1 as number
---データ格納先を初期化
set theLineData1 to "" as text
set theLineData2 to "" as text
set theLineData3 to "" as text
---HTMLヘッダー
set theHtmlData to "<!-- ここからEmailアドレステーブル -->\r"
---CSSを設定
set theHtmlData to theHtmlData & "<style type=\"text/css\" media=\"screen\">div.bordertable{width: 80%;} .bordertable table , .bordertable th , .bordertable td {font-size: 12px;border: solid 1px #666666;padding: 3px;border-collapse: collapse;overflow: inherit;word-wrap: break-word;} .bordertable th.mailname{font-size: small;text-align: left;} .bordertable a.emailadd{font-family: monospace;font-style: normal;word-break: keep-all;} .bordertable p{font-size: small;text-align: center;} .bordertable input{width: 88px;border-width: 0px;border-style: none;height: auto;width: 60px;padding: 0px;margin: 0px;font-size: small;text-align: right;}</style>" as text
---CSSの反映用のDIVの開始
set theHtmlData to theHtmlData & "<div class=\"bordertable\">\r<form>" as text
set theHtmlData to theHtmlData & "<p>LiveMailを利用している人はWをクリック</p>\r" as text
set theHtmlData to theHtmlData & "<table>" as text
set theHtmlData to theHtmlData & "<caption>メールアドレス一覧|個人情報につき取り扱いには注意しましょう</caption>" as text
---テーブルの見出
set theHtmlData to theHtmlData & "<thead title=\"見出し\"><tr><th>氏名</th><th>所属</th><th colspan=\"3\">メール</th></tr></thead>" as text
---tbody
set theHtmlData to theHtmlData & "<tbody title=\"メールアドレス一覧\">" as text
---繰り返しのはじまり
repeat numListLine times
---最初の行を読み込む
set theDataListLine to (item numLine of retListVal) as text
---区切り文字をタブに指定
set AppleScript's text item delimiters to {"\t"}
---タブ毎にリスト形式で取得
set theDataListLineData to every text item of theDataListLine as list
------ここは使わないけど リストの項目数を取得
set numListLineCnt to (count of theDataListLineData) as number
-------各項目を取得
set theLineData1 to (item 1 of theDataListLineData) as text ---名前
set theLineData2 to (item 2 of theDataListLineData) as text ---所属
set theLineData3 to (item 3 of theDataListLineData) as text ---メール
---項目3をメールアドレスとする
set theOrgEmail to theLineData3 as text
---リンク用の名前を設定(所属+名前+さん)
set theLinkName to ("" & theLineData2 & "" & theLineData1 & "さん") as text
---inputエリア用のテキストを定義
set theInputText to ("" & theLineData2 & "" & theLineData1 & "さん&lt;" & theOrgEmail & "&gt;") as text

---///Macと最近のWindows用にURLエンコード
set theLinkNameMac to my doUrlEncode(theLinkName) as text
---URLエンコードのスペース表記+を取る
set theLinkNameMac to my doReplace(theLinkNameMac, "+", "") as text
---最初と最後の<>
set theLinkNameMac to (theLinkNameMac & "%3C" & theOrgEmail & "%3E") as text

---///WindowsLiveMai用のSJISエンコード
set theLinkNameWin to my doSJISencode(theLinkName) as text
---最初と最後の<>
set theLinkNameWin to (theLinkNameWin & "%3C" & theOrgEmail & "%3E") as text

---///body入りのリンク作成
set theLinkBodyName to ("TO:\r" & theLineData2 & "" & theLineData1 & "さん") as text
---Macと最近のWindows用にURLエンコード
set theLinkBodyNameMac to my doUrlEncode(theLinkBodyName) as text

---HTMLにする
set theHtmlData to theHtmlData & "<tr>\r" as text
set theHtmlData to theHtmlData & "<th title=\"" & theLineData1 & "さんのメールアドレスリンク\" class=\"mailname\">" as text
set theHtmlData to (theHtmlData & "<a rel=\"nofollow\" href=\"mailto:" & theLinkNameMac & "?body=" & theLinkBodyNameMac & "\" tabindex=\"" & (numTabIndex) as text) & "\" title=\"" & theLineData1 & "さんの名前をメール本文に入れます\" target=\"_blank\">" & theLineData1 & "</a></th>" as text
set theHtmlData to theHtmlData & "<td title=\"所属\">" & theLineData2 & "</td>" as text
set theHtmlData to theHtmlData & "<td title=\"所属+名前形式のメールリンク\">&nbsp;" as text
set theHtmlData to (theHtmlData & "<a rel=\"nofollow\" href=\"mailto:" & theLinkNameMac & "\" title=\"所属+" & theLineData1 & "さん+メールアドレス。\" tabindex=\"" & (numTabIndex + 1) as text) & "\" target=\"_blank\">M</a>" as text
set theHtmlData to theHtmlData & "&nbsp;|&nbsp;" as text
set theHtmlData to (theHtmlData & "<a rel=\"nofollow\" href=\"mailto:" & theLinkNameWin & "\" title=\"所属+" & theLineData1 & "さん+メールアドレス。WindowsLiveメールを利用している方はこちらをクリック\" tabindex=\"" & (numTabIndex + 2) as text) & "\" target=\"_blank\">W</a>" as text
set theHtmlData to theHtmlData & "&nbsp;</td>" as text
set theHtmlData to theHtmlData & "<td title=\"メールアドレスだけのリンク\">" as text
set theHtmlData to (theHtmlData & "<a rel=\"nofollow\" href=\"mailto:" & theOrgEmail & "\" title=\"" & theOrgEmail & "\" tabindex=\"" & (numTabIndex + 3) as text) & "\" class=\"emailadd\" target=\"_blank\">" & theOrgEmail & "</a></td>" as text
set theHtmlData to theHtmlData & "<td title=\"コピペ用のテキストエリア\">" as text
set theHtmlData to (theHtmlData & "<input type=\"Text\" name=\"emailtext\" value=\"" & theInputText & "\" tabindex=\"" & (numTabIndex + 4) as text) & "\" onclick=\"this.select(0,this.value.length)\">" as text
set theHtmlData to theHtmlData & "</td>" as text
set theHtmlData to theHtmlData & "\r</tr>\r" as text
---カウントアップ
set numLine to numLine + 1 as number
set numTabIndex to numTabIndex + 5 as number
---データ初期化
set theLineData1 to "" as text
set theLineData2 to "" as text
set theLineData3 to "" as text
--リピートの終わり
end repeat
---HTMLのフッター処理

set theHtmlData to theHtmlData & "</tbody>\r"
set theHtmlData to theHtmlData & "</table>\r</form>\r</div>\r"
set theHtmlData to theHtmlData & "<!-- ここまでEmailアドレステーブル -->\r"
---結果をテキストエディタに表示する
tell application "TextEdit" to launch
tell application "TextEdit"
make new document with properties {text:theHtmlData}
end tell
tell application "TextEdit" to activate

end open

--------//Mac用リンクエンコードサブルーチン
on doUrlEncode(str)
set scpt to "php -r 'echo urlencode(\"" & str & "\");'"
return do shell script scpt
end doUrlEncode


--------//Windows用リンクエンコードサブルーチン
on doSJISencode(str)
set scpt to ("php -r 'echo urlencode(mb_convert_encoding(\"" & str & "\"" & ",\"SJIS\", \"auto\"));'") as text
return do shell script scpt
end doSJISencode



--------//文字の置き換えのサブルーチン
to doReplace(theText, orgStr, newStr)
set oldDelim to AppleScript's text item delimiters
set AppleScript's text item delimiters to orgStr
set tmpList to every text item of theText
set AppleScript's text item delimiters to newStr
set tmpStr to tmpList as text
set AppleScript's text item delimiters to oldDelim
return tmpStr
end doReplace

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

ソースとエクセルファイル等の詰め合わせは以下から

「TabText2MailLink.zip」をダウンロード

|

[AppleScripts]メールリンクを作成する(Windows,LiveMail,コピペ対応)【その1】

盛り込みすぎた…苦笑

タブ区切りテキストをHTMLに変換します。


エクセルで作った、こんな風な
メールアドレスリストを

Force4u_09_448x318

こんな感じのHTMLに変換します。

Force4u_01_450x518

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

クリックする場所によって
結果が異なるようにしています。

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

毎年、どこかの部署で『メールの誤送信』って発生しちゃいます。
気をつけている、(技術的に自信の無いといっても良い?)熟年層より
若い人の方が、誤送信は多いです。
(まぁ若さゆえ…の部分と、ちゃんと教わっていない事からでしょうか)

そこで
メールアドレスの部分を
こんな感じから

Force4u_04_657x231

こんな風にする事で
『気付き』を呼ぶようにします。

Force4u_03_685x227

アドレスブックに登録する場合にも
有効ですので、ジワジワっと効く感じでしょうか?


ここで問題になるのが『Windows』と『LiveMail』です。

Force4u_10_569x387

Force4u_11_517x463

上記のようになってしまうのは
『S-JIS』エンコードで受け取る仕様になっているからです。

そこでPHPをつかってエンコードを別にしたリンクを作成します
サブルーチンはこんな感じ


--------//Mac用リンクエンコードサブルーチン
on doUrlEncode(str)
set scpt to "php -r 'echo urlencode(\"" & str & "\");'"
return do shell script scpt
end doUrlEncode


--------//Windows用リンクエンコードサブルーチン
on doSJISencode(str)
set scpt to ("php -r 'echo urlencode(mb_convert_encoding(\"" & str & "\"" & ",\"SJIS\", \"auto\"));'") as text
return do shell script scpt
end doSJISencode

続く
その2はこちら
https://force4u.cocolog-nifty.com/skywalker/2016/02/applescriptsw-1.html

|

Opera Mail

Website_image00270110_11448

http://www.opera.com/ja/computer/mail


悪くない
設定にクセがあるけど、今の所いい感じ
だが…
開発終了…のリスクが高いメーラーに手を出すのはチョイト抵抗感

Zimbra Desktopは文字コードを除いても
JAVAってどうしてもUIが慣れないので、すぐに使わなくなったし…なぁ
(Zimbraはメーラーというより仕事用ツールって感じだったしなぁ…)

Website_image00270110_12803


http://www.zimbra.com/downloads/zimbra-desktop

|

[eMail] 送信前にメール本文をチェックする

いつからですかねぇ
UTF8メールがおおでを振って行き交うようになったのは…
CJKとか…国別言語別対応面倒だからUTFにしちゃえばいいでしょ
なのかなぁ
まぁ、後数年?経てば、色々なケースが適応されて
文字化け?問題も解決するんでしょうか。
(例えば:本文は全てJIS内だけど、添付ファイルのファイル名がUTFで本文インライン上に配置されているとか)
さて
メール送信前にメール本文中の文字をチェックするスクリプトです
業務で作成したのを少し手直ししたので公開

手順
1:解凍したスクリプトはスクリプトメニューに

2:メール本文を書いたら

Website_image00261101_132842

3:メール本文全てを選択して

Website_image00261101_132850

4:メール本文をコピーします

Website_image00261101_132902


5:出来たらスクリプトメニューから実行

Website_image00261101_132910


6:JIS外の文字があると〓に置き換えます

Website_image00261101_132936


(*
クリップボード内のテキストに
JIS外の文字があるか?を確認して
テキストエディットに貼付けます
JIS外の文字は〓に置き換えます。
テキストエディターにペースト後
〓を赤く塗ります
クリップボード内のテキストを取得する際に
処理によって違う場合?に置き換わるので
?マークは緑に塗り注意喚起します
https://force4u.cocolog-nifty.com/
*)

(*
ここは設定項目です
メールアプリによる改行の扱いの違いを設定
AppleMail app = 0
Thunderbird = 1
Microsoft Entourage 13 = 2
*)
property theEmailApp : 0


------------------------------------
on run
------------デフォルトのディレクトリ
tell application "Finder"
-----このスクリプトへのパスを格納
set theDefaultLocation to ((container of (path to me)) as text) as text
end tell
------辞書ファイル(といってもテキストですが)
set theJisDic to "ISO-2022-JP-Dic.txt"
-----ファイルまでのパスをエイリアスにして格納
set theJisDicPath to (theDefaultLocation & theJisDic) as alias
------------ファイルを「open」に渡す
open theJisDicPath
end run


on open objDrop
-----辞書ファイルのエイリアスを取得
set theFileAlias to objDrop as alias
------選択したファイルのUNIXパスを取得
set theUnixPass to POSIX path of theFileAlias as text
----辞書ファイルを読み込みUTF8で格納する
set theData to (do shell script "cat " & theUnixPass) as «class utf8»
----格納したデータをテキストにする
set theData to theData as text
-----クリップボードから取得した時の値の初期化
set theMailText to ""
----メールアプリ毎の文字と改行の処理
try
----AppleMail
if theEmailApp is 0 then
-----クリップボードの中身をテキストで格納
set theMailText to get (the clipboard as «class utf8»)
-----テキストに変更
set theMailText to theMailText as text
-----区切り文字を改行コードに変更
set AppleScript's text item delimiters to {"\n"}

-----Thunderbird
else if theEmailApp is 1 then
-----クリップボードの中身をテキストで格納
set theMailText to get (the clipboard as «class utf8»)
-----テキストに変更
set theMailText to theMailText as text
-----区切り文字を改行コードに変更
set AppleScript's text item delimiters to {"\n"}

-----Microsoft Entourage(まぁ不要ですけど
else if theEmailApp is 2 then
-----クリップボードの中身をテキストで格納
set theMailText to get (the clipboard as Unicode text)
-----テキストに変更
set theMailText to theMailText as text
-----区切り文字を改行コードに変更
set AppleScript's text item delimiters to {"\r"}
end if
end try
-----改行毎にリストにして格納
set theFileTypeList to every text item of theMailText as list
-----区切り文字を戻す
set AppleScript's text item delimiters to {""}
-----何行あるか?(データ件数=繰り返し数)を数える
set numListLine to count of theFileTypeList
-----行数カウンタ初期化
set numLine to 0 as number
-----文字の置き換えが発生したか?カウンタ
set numNoJisChr to 0
-----繰り返しカウンターも初期化
set numListLineCnt to 0 as number
-----行毎の繰り返し
repeat numListLine times
-----行カウンターアップ
set numListLineCnt to numListLineCnt + 1 as number
-----行数カウンタ行を1行だけ取得して格納
set theLineDate to (item numListLineCnt of theFileTypeList) as text
-----文字数数える
set numPcnt to (count of theLineDate) as number
----文字毎のだぶるクオテーションを区切り文字に
set AppleScript's text item delimiters to {""}
------文字毎にリストに格納する
set theLineDate1 to every text item of theLineDate as list
-------文字毎の繰り返しカウンターを初期化
set numCntRepeat to 0 as number
-----文字毎の繰り返し
repeat numPcnt times
-----文字カウンターアップ
set numCntRepeat to numCntRepeat + 1
-----1文字づつ
set theChkMailText to (item numCntRepeat of theLineDate) as text
------辞書ファイルの中に文字があるか?調べる
if theData contains theChkMailText then
---あればそのまま
else
-----辞書ファイルに無い文字があったら
-----置き換え文字を〓に指定
set theText to "" as text
-----辞書外の文字カウンタUP
set numNoJisChr to numNoJisChr + 1
log theChkMailText
------辞書ファイルの中に無い文字だったら〓に置き換える
set theMailText to doReplace(theMailText, theChkMailText, theText)
end if
-----文字毎リピートの終わり
end repeat
-----行毎リピートの終わり
end repeat

------結果発表
if numNoJisChr is 0 then
-----置き換えが発生しなかったらOKダイアログ
tell application "Finder"
display alert "メールチェックOK" as informational giving up after 1
end tell
else
-----文字の置き換えが発生したらテキストエディタに表示する
-----色指定
set redColor to {65535, 0, 0}
set greenColor to {0, 41354, 0}
-----?マークを緑に塗るための文字指定
set theQText to "?" as text
----置き換え終わった文字をクリップボードに戻す
set the clipboard to theMailText as text
------結果をテキストエディタに表示する
tell application "TextEdit" to launch
tell application "TextEdit"
----新しいドキュメントを作成する
make new document with properties {text:theMailText}
tell text of document 1
---置き換え文字を赤く塗る
set the color of every character where it is theText to redColor
set the color of every character where it is theQText to greenColor

end tell
end tell
tell application "TextEdit" to activate
end if
end open






----------------#ここから文字の置き換えサブルーチン
to doReplace(theText, orgStr, newStr)
set oldDelim to AppleScript's text item delimiters
set AppleScript's text item delimiters to orgStr
set tmpList to every text item of theText
set AppleScript's text item delimiters to newStr
set tmpStr to tmpList as text
set AppleScript's text item delimiters to oldDelim
return tmpStr
end doReplace


「JIS-Chker-v2.zip」をダウンロード


「JIS-Chker-v2.rtf」をダウンロード

アントラージュ等で
このダイアログが出ても、「どの文字?」が解らない時用です

Website_image00261101_110421


|

[APP]Zimbra Desktop

Mac用も用意されている
JAVAベースのメールクライアント

Zimbra Desktop
Zimbra_desktop_04
Zimbra Desktopアイコン:新しいウィンドで開きます

Zimbra_desktop_01

マイナーアップデートで
2.0.1が出ています。

無料である事と
マルチプラットフォームで使える事から
企業ユーザーを中心に『じんわり』と利用者が増えていますが
文字バケを中心にした
トラブルも後を耐えない
Zimbra_desktop_03

なんでもかんでも
UTF-8のBase64でエンコードしてしまうのは
変わらず
これ
なんとかならんのかなぁ

Zimbraでメールを送って
先方が文字化けするようなら
添付ファイルとして送る等の対応が必要

一方でUTF8対応のメーラーなら
日本語の添付ファイル名にも対応するので
一長一短

現時点では文字バケのトラブルが発生する確率が高いが
まぁ
UTF8メールは
数年後には普通に使えるようになるかもしれない。

企業ユーザーのWindows2000やXPの淘汰が
あと3年ぐらいだろうから
まだまだトラブルの種かもしれない

| | コメント (0) | トラックバック (0)

[eMail]文字バケメールを未然に防ぐ(Zimbra Desktopな場合)

[eMail]文字バケメールを未然に防ぐ(Macな場合): [FORCE][LINK]新しいウィンドで開きます
【Mail】Appleメールで文字化けさせないようにする: [FORCE][LINK]新しいウィンドで開きます


シリーズの第三弾..w
Zimbra Desktop編
Force4u00221014_123315
Zimbra Desktop[LINK]新しいウィンドで開きます


Javaベースで各OS用にAPPが用意されていますので
企業等で利用されている方も多いかも?ですね。

Gmailでの受信サンプル
Force4u00221014_123139

Zimbraはデフォルトの設定だと
なんでもかんても
charset=utf-8

Transfer-Encoding: base64

Force4u00221014_123201


送信しますので
利用者は注意しないと
お客様先で文字バケが発生する可能性が高いですね。

 

前にも書きましたが

電子メールは
現代の手紙であり
大人の通信手段ですから
理由はどうであれ
『読めない』物を送るのは、失礼です。
送信者の責任ですので
しっかり注意しましょう。

初めてのメールのやり取りで
Zimbraを使うときは
先方に電話を入れて確認し
UTF8メール大丈夫なお客様

UTF8メールダメなお客様

確認していく必要が
今しばらくの間はあるかもしれませんね。


 

ちなみに
Zimbraのメールヘッダーは

Force4u00221014_125118

『元のメッセージを表示』から確認できます。

| | コメント (0)

[eMail]文字バケメールを未然に防ぐ(Macな場合)

ここで書いているのは
『自分が文字化けするメールを送らないようにするためには?』
です。
もう
気を付けるしかないわけですが
メモとして残しておきます。


UTF-8や新JISの文字や字形が
文章中にあると
受信者が文字化けしてしまいます。

AppleMailの場合は[LINK]OpenNewWindowこちらの方法で
未然に防ぐ事が出来ますし

アントラージュの場合は
577x307_jis2022_01

事前にこのようなメッセージが出ます。

 
一方
サンダーバードは
送信直前まで
2022JISで表示されていますが
Screencapture00220725_224702jst


送信時に
UTF-8に変換されてますので
Screencapture00220725_224759jst

メール作成者がよっぽど気を付けないと
UTF-8のメールを送ってしまいますね。


ちなみに
サンダーバードの場合
ヘッダー見るのは
Screencapture00220725_224604jst

こちらを『すべて』する事で見れます。

AppleMailは
UTF-8をBase64で送信するので
サンダーバードの方が素行が悪いって事になるのかな?
まぁ
どっちもどっちだなぁ

とにかく『警告が出ない』のは
ユーザーフレンドリーでは無いでしょうし
『ユニバーサル』なのか?って事についても疑問ですなぁ

 

文章を入力していていて
送信しようと思ったら
UTFになってて
『どの文字?』かわからない場合

925x660_jis2022_02

JeditXを使えば一発で
どの文字が問題なのか
わかります。

メール本文を
JeditXにペーストします。
822x751_jis2022_03

互換チェックを実施します。
791x617_jis2022_04

この時
ISO2022エンコーディングとの
互換チェックをします。
442x186_jis2022_05


すると
719x583_jis2022_07

この文字が互換が無いですよ〜と
教えてくれます。

特に
お客様に送るメール等で
失礼のないようにしたいですね。

技術的な解説はこちら[LINK]OpenNewWindowの記事が
とても参考になると思います。

| | コメント (0)

【mailstationery】Appleメールのひな形(ひな形・テンプレート)を作る【その2】

【その1】はこちら[LINK]OpenNewWindow
Appleメールのテンプレート(Templates)を作ってみます。

手順はその1の時と同じ
■デザインを考える
■HTMLを作成する(通常文法 HTML4相当で作る)
 (画像の作成が必須です)
■ひな形用のタグを挿入する。
■Description.plistを作成する。
■テスト送信して確認する。
の順番

 

その1では『ひな形』の『文字入力』の仕組みを見ました。
その2では『画像』について見ていきます。

ドラッグ&ドロップで画像が変えられるようなテンプレートが
初期設定から用意されています。
どうなっているのか?って事なんですが

827x348_iphone4_08

↑の画像の通り
HTMLメールの本体になるHTMLの記述に

img src="Photos"
class="AppleCompositeImage"

この2点がミソになっています。
リソース指定のSRCで指定している『Photo』が
設定ファイルの『Description.plist』の中の記述
1119x496_iphone4_04
↑の画像で見れるように
設定『Composite Name』と紐づいているわけです。

この部分を理解してしまえば
後は画像を用意するだけですので
画像処理のソフトウェアを使える人なら
まぁ
簡単に作成する事が出来ますね。

『Drop Zone Angle』の設定値では画像の傾斜をサポートしていますので
画像を傾ける事が出来ます。(けっこうこれは凄い機能だとおもうのですが)

 
Iphone4をモチーフに作成します。
下絵 マスク フレームをそれぞれ作ります。
下絵になる『banner.png』[LINK]OpenNewWindow
マスク『Mask1.png』[LINK]OpenNewWindow
フレーム『Frames.png』[LINK]OpenNewWindow

の3つのファイルを作成しておきます。
『全て同じ縦横サイズ』である必要があります。(ここ注意ね)

構造的には
Screencapture00220611_21209

こんなイメージです。

img src="Photos"がブラウザとしてはサポートしていませんから

HTMLの作り込み時に画像のサイズやマスクの位置等を
ちゃんとしておかないと、後でややこしい事になりますね。

 

で出来たのがこちら
「iphone4.mailstationery.zip」をダウンロードOpenNewWindow

↑のファイルは文字入力エリアを設定していません
画像だけの送信になります。


 
Mailでの表示
631x607_iphone4_07

こんな感じで
フレームの画像に透明でガラスのテカリ感を出しています。

 
画像をドラックして画面の中の画像を交換します。
608x777_iphone4_01


 
若干ですが
画像の拡大や位置調整も出来ます。
333x226_iphone4_03

 

Gmailでの表示も大丈夫でした。
766x452_iphone4_02

Microsoft Entourageでの表示で気がついたのですが

823x848_iphone4_05

画像ファイルは
『下絵』『フレーム』『ユーザーの画像』を『マスク』かけたものを
Appleメール側で1つの画像に変換して送信しているんですね。
(まぁそりゃそうだ)へぇ〜


その1で文字入力
その2で画像の添付方法
がわかりましたので
その3では両方をやってみます。(ちょっと先になりそうですが)


続く

 


[Download]名称未設定を新しいウィンドで開きます

上記配布のファイルは
CC0を選択しています。
CC0

| | コメント (0)

【mailstationery】Appleメールのひな形(ひな形・テンプレート)を作る【その1】

Appleメールのテンプレート(Templates)を作ってみます。
こつはあるものの
思っていたより非常に簡単です。

 

■デザインを考える
■HTMLを作成する(通常文法 HTML4相当で作る)
■ひな形用のタグを挿入する。
■Description.plistを作成する。
■テスト送信して確認する。

こんな手順になります。

 

■デザインを考える
 最終的に目指すデザインは別にして
 とりあえずのデザインを作成しました。

■HTMLを作成する
 HTMLはメールソフトでのサポートもありますので
 あまり複雑な事はしないでHTML3とかHTML4とかで作った方が良いようです。

■ひな形用のタグを挿入する。
 contenteditable="true"
 apple-content-name="任意の名前"
 の2つをユーザーが入力する部分に挿入するだけです。
 
ではここまでのサンプルがこちら[HTML]OpenNewWindow[TXT]OpenNewWindow

画像とHTMLファイルは同一階層にあります。
contenteditableが文字を入力する所にないります。

■Description.plistを作成する。

656x453_mailstationery_09_2
【1】バックグラウンドイメージとして画像を使う場合はこちらにファイル名を記述
【2】はフォルダの名前です。『.mailstationery』を使う事でパッケージとなります。
   圧縮する必要はありません。
【3】通常のイメージファイルを使う場合にはこちらにファイル名を記述

【4】のUUIDはユニークに付ける必要がありますので
 ●ターミナル使うなら
 uuidgen
 で UUIDが作成されます。

 ●AppleScriptでも同様に
 set uuidgenName to (do shell script "/usr/bin/uuidgen")

 で新しいUUIDを作れます。

【5】は↓ここに表示される画像になります。
Screencapture00220610_102321_4


 

簡単にひな形が出来ました。

テスト送信してみると
↓GMAIL
781x460_mailstationery_01

↓AppleMail
963x1078_mailstationery_06

↓ Entourage
911x1129_mailstationery_05

それぞれで
ちゃんと表示出来ました。
 

HTMLで使用されている画像の自動で添付されますので
結構便利かもしれません。

HTMLはUTF-8のUNIX改行で作成しましたが
メール自体はiso-2022-jp-1で送られています。

これは面白い
もう少し実験してみましょう。
 

とりあえず今回作成した
ひな形です。
仕事で使えそうな感じですが
仕事でHTMLメール使っちゃぁ〜ダメよ...w
 

では今回の出来上がり品

「MES.mailstationery.zip」をダウンロード
CC0を選択しています。
CC0


続く

 

| | コメント (0)

【Mail】Appleメールで文字化けさせないようにする

私は『Microsoft Entourage』を愛用しているので
ほとんど使った事が無いのが
Appleメールです。
初期の10.2の頃のメールがあまりにも使いにくくて
早々に挫折した。

『Microsoft Entourage』のルール設定が気に入っている
メールを読む事のほとんどを『Gmail』に移行した今でも
メールを書く時は『Microsoft Entourage』を愛用しています。

 

前置きが長くなりましたが
Appleメールでメール送信して
受信者から『文字バケしている』と言われてしまう場合の対応方法。


 

WindowsでもMacでもちょっと前のメールソフトは
『UTF-8』でエンコードされたメールを正しく表示出来ない
ユードラとか?一昔前のバージョンのメールを使っている方も
まだ多いのです。

ではどうしたら良いでしょう。
『メール書くときに注意する』しか方法ありません..w

こちらの記事も参考にしてくださいMacな方[LINK]OpenNewWindow

 

■文字コード(Content-Type)が確認できるようにします
■機種依存文字を使わない
■新JIS文字を使わない
■極力『記号』を使わない。(広範囲な意味で)
■添付ファイルに日本語のファイル名を使わない。

でだいぶ防げるはずです

 

電子メールは
現代の手紙であり
ちょっと前のファックスです。
甥っ子の年賀状ならまだしも
大人の通信手段ですから
理由はどうであれ
『読めない』物を送るのは、失礼です。
(字が汚くて読めない手紙もらうのと同じです)

送信者の責任ですので
しっかり注意しましょう。


 
まずは
メールの『Content-Type』を確認出来るように
設定を変更します。


545x354_contenttype_02


環境設定→表示
から
『ヘッダの詳細情報を表示』を『すべて』に変更します。

 
そうすると
このように

706x386_contenttype_01_2

『Content-Type』を確認出来るようになります。

 

後は『入力した文字』によって
ISO2022でカバー出来る場合は
748x513_contenttype_03

このように表示されますので
このメールは大抵の場合はちゃんと読んでもらう事が出来ます。
(日本語フォント環境のない人に送っちゃだめよ..w)

 


ダメ(相手によっては文字バケする可能性がある)場合は
このように

695x509_contenttype_05

『utf-8』となります。


同じような文字でも

743x507_contenttype_04

このように大丈夫な文字もありますので
(とはいえ○数字は違った意味で文字化けする
  可能性が[LINK]OpenNewWindowありますが..汗)
送信ボタンを押す前に確認すれば
大丈夫でしょう。

 

ポイントとしては

■記号文字は極力使わない
①等は→【1】や[1]のように
文字化けしないように工夫する癖をつける事が良いでしょう。

■送信する前に『Content-Type』を確認する

この2点で大丈夫です。
 

電子メールのエンコ—ディングはISO2022(JIS)で送りましょう!
って事になっていますが
WinもMacもオープンタイプフォントのProフォントがインストールされ
多言語対応が進んでいますので
遠くない未来には
メールのエンコーディングは全てUTF-8にしましょう
って事になるとは思います

今はISO2022で送るのがルールになっています。

 
メールの文字バケは
『送った人』も『もらった人』も嫌な物です。
(急いでるのにぃ〜な時に限ってですよね..w)

受信者のメールソフトの環境にも影響されますから
『UTF8で送らないようにする事』

最大の方法です。

参考にしてください。

------追記

Appleメールのバージョン 4.xで確認した所
UTF-8の内容のメールを送信する場合

UTF-8の本文

HTMLメール化して保存

base64エンコード

送信時テキスト形式に戻す

base64エンコード形式

送信

となっているようです。

これは困りました。

Screencapture00220714_222116


もう絶対使わないAppleメール...w
つ〜か
怖くて使えないかも...汗

Base64のデコード方法は
こちら[LINK]OpenNewWindow
[JeditX]base64でエンコードされた文字列をデコードする。
を参考にしてください。

 

記号は↓ぐらいにして
Screencapture00220907_231058
記号を使わない

新JISで登録された文字を使わない
Screencapture00220907_231711

↓のような記号等
Screencapture00220907_232024
機種依存文字を使わない


だけで
結構大丈夫だったりするんですけどね


機種依存文字
フォント依存文字
を含めた文字の情報は
こちら
Mac OS Xの文字コード問題に関するメモ[LINK]新しいウィンドで開きます
のサイトを参考にしてください

ちなみに
スノーレパードでは
defaults write com.apple.mail NSPreferredMailCharset ISO-2022-JP

このコマンドによる
設定は動作しない

  

| | コメント (0)

その他のカテゴリー

Accessibility AccessibilityCheck AccessibilityForm AccessibilityInDesign AccessibilityPDF Acrobat Acrobat Action Acrobat Annotation Acrobat AppleScripts Acrobat Character Acrobat Layer Acrobat PDF Embed API Acrobat PDF Form Print Acrobat Plug-ins Acrobat Portfolios Acrobat Print AcrobatBarcode AcrobatDialog AcrobatForm AcrobatJS AcrobatMenu AcrobatPDF AcrobatStamp AcrobatYouTube AddressBook Adobe Adobe InDesign Adobe Photoshop AdobeAppleScript AdobeBridge AdobeIllustrator AdobeJSX aed Alfresco Android AnimationGif Apple Apple Support AppleScript AppleScriptBasics AppleScriptCharacter AppleScriptColor AppleScriptDroplet AppleScriptErrorNum AppleScriptFolder AppleScriptFontBook AppleScriptRename AppleScriptTools AppleSymbols Applications Barcode Barcode2D BarcodePostal BetterHTMLExport Book BOX Browser buzz Certificates CharacterEntity CharacterSets Colors Cool Site CSS Cutting DecoMail DecorationMail Design Desktop Diff DJ dmg DNS Documents Download DTP eBook Editer eMail Envelopes ExifTool Facebook FFmpeg File System Fonts FontsTool FontsWeb FOOD FormPrint ftp Gadget Gif Animation Google Google Chrome Enterprise HexEditor HTML info iPhoto ISBN ISO iTunes iWork iWorkNumbers iWorkNumbersCalendar iWorkNumbersTimecard iWorkPages JavaScript JeditX JeditX Regexp JeditXAppleScript JIS jquery Letterpress Library logo Mac Admin Mac Archiver Mac Browser Mac Browser Plugin Mac QuickLook Mac Setup Mac Spotlight Mac Video Map Memo Microsoft Teams Mobby mobileconfig Moto Movies Music Network Basic ntp OCR Office OfficePowerPoint OSX Paint Pantone Paper PDFlib Permission Photo Pictograms Print Public Python QuickLook QuickTime QuickTimeSetting QuickTimeSound Real Media ReName ResourceFork ruby Sample Screen ScreenCast Search Security SEO Sharing SLAResource Sound Spotlight Stamp SWF TCC.db Tutorial PSD TV Twitter Typography Unicode Utilities Video WEB APP WebFont Wedding Windows WindowsMedia XML XMP XPS YouTube YouTube Rss