原文见:How to Create/Edit Your Own Mail.app Stationery - The Apple Blog
Leopard 中 Mail 的诸多新功能之一是它附带了许多邮件模板,你可以轻松地从中依需取用, 装点你的电子邮件。
从大体上说,这些模板只不过是老式 HTML,外加些许 XML。 所以,编辑或制作你自己的模板的仅有要求是你懂得一点 HTML 的相关知识。如果你是完全制作自己的模板,一定的设计功底将对你很有帮助。
我个人并非 HTML 格式电子邮件的狂热爱好者,但是在某些场合使用将令人满意。于是,我决定深入钻研,摸清楚这项功能在 Mail.app 中具体是怎样运作的。令人意外的是要编辑或制作你自己的模板其实非常简单。
接下来是一篇较为深入的指导你编辑附带模板或制作自己的模板的教程。
概览
每个模板设计最终只不过是一个结构有序的包装有 HTML 和图像文件的文件夹而已。只要你知道如何在 Finder 中穿行,以及使用关联菜单即可。
通过以下步骤,你将能够编辑附带的 Apple 设计的模板或从零开始制作自己的模板。在本教程中,我们将从零开始设计一个新信纸。我建议下载教程文件,将其用作参考。
文件夹结构
以防一你不知道,当你打开应用程序(Application)文件夹,双击图标开启一个程序时,你实际上双击的是一种文件夹(这类文件夹的名称带有 .app 扩展名)。如果你选中一个程序,并右击(对单键鼠标而言,用 control 加左键单击),在出现的关联菜单中你会看到“显示包内容”。点击这个选项,你将看到包裹(例如,一个程序)的内部,实际上几个文件和文件夹组成了一个包裹。在编辑或制作模板时,我们将用到这一点。
- 要获得附带的模板,你需要浏览至如下路径:
/Library/Application Support/Apple/Mail/Stationery/Apple/Contents/Resources/
- 一旦你浏览至 Resources 文件夹,你将注意到很少的其他几个文件夹,这些最终将构成可供选择的模板分类之一。本教程中,我们将制作“家庭信函”模板,我选择将它放至 ‘Announcements’ 文件夹中。
- 继续前进,穿过几个子文件夹( /Contents/Resources/ )。你将注意到一系列的模板。每个模板均以“模板名.mailstationery”的格式命名。
- 新建一个文件夹,将其命名未 Family Newsletter.mailstationery 。在你如此新建文件夹后,你可以注意到它的图标立即变得和其他模板包裹一样了。
制作模板
再次重申,不要被所需穿越的文件夹数量吓倒了。
那么,让我们在多穿过几个文件夹。Control - 左键单击你之前新建的 Family Newsletter.mailstationery,选择“显示包内容”。你需要新建两级子文件夹,最终达到如下路径:
Family Newsletter.mailstationery/Contents/Resources/
我们需要在 Resources 文件夹内创建几个核心文件和文件夹:
HTML 文件
在我们继续前进之前,需要阐明的是电子邮件模板中用到的 HTML 仍处于其黑暗时期。事实上,某些公司实际是在走倒退的道路。所以,对苛求标准的你们,这里谈及的 HTML 将让你畏缩。
在本文末尾有个链接,用它你可以下载到这部分所需的文件。我不会在文章中发布HTML文件的全部内容,但我将给出小段代码,这部分代码可能对你来说是全新的,同时也有一部分是 Mail.app 模板所独有的。
- contenteditablecontenteditable 是一个用于标记内容可编辑的区域的 HTML 属性。下面是个使用示例:
[code lang='html']This is some boring text[/code]
- AppleCompositeImage如果你希望能够在写邮件时向模板中加入自选的图像,并将它们限定在一定区域中,那么你需要使用 AppleCompositeImage 。 下面是个使用示例:
[code lang='html']
[/code]
这将成为 “拖放区”。src 属性将与稍后介绍的代码相搭配而起作用。
- apple-content-name我并不是完全确定 apple-content-name 属性是作何用的。我的猜想是它在你切换模板时起作用。利用它能在一定程度上保证切换模板时你的文本完整无缺。 下面是个使用示例:
[code lang='html']Our Vacation[/code]
以上基本上介绍完了非常规 HTML 标记的部分。到此,我建议下载文章末尾的链接至的文件,打开 content.html 浏览代码。
DisplayName.strings
如我之前所说,这是一个你应该创建并命名为 DisplayName.strings 的文件。这个文件真的很直白,它所做的是告诉 Mail.app 应该如何显示你的模板的名称。它只需包含如下内容:
"Display Name" = "Family Newsletter";
Description.plist
Description.plist 可能是整个过程中最复杂的部分了。我不建议完全自行输入此文件的内容。我的建议是下载本文附带的文件,将其中 Description.plist 的内容复制/粘贴至你新建的相应文件。
Description.plist 仅仅是一个用于控制你的模板的某些设置的 XML 文件。
[code lang='xml']Background Images[/code]
这部分应包含所用要在 HTML 文件中用作背景的图像。
Example:
[code lang='xml']Background Images
content_bg.png
header_bg.png
[/code]
[code lang='xml']Composite Images[/code]
Composite Images 代码用于设置动态图像点,这些图像点让你拖放自选的图片。
下面是个使用示例:
[code lang='xml']Composite Images
Base Image
banner.png
Composite Name
Photos
Masks
Drop Zone Angle
0
Drop Zone Offset
0
0
Drop Zone Size
496
186
File Name
mask.png
Placeholder Image
placeholder.jpg
Overlay Image
shadow.png
[/code]
现在稍作解释:
- Base Image
base image 将被用作拖放区的背景。它是拖放区无图片时所显示的内容。
- Composite Name
这是你将在你的 HTML 的 src 属性的内容。此处被命名为了 “Photos.”
- Masks
蒙版区负责处理拖放入的图像。更多细节见下文。
- Drop Zone Angle
如果你希望 “拖放区” (你可拖放图片的区域) 略微倾斜, 你可以改变这一数值。
- Drop Zone Offset
裁剪蒙版区时将会依照此处设定的 X、Y 两个坐标对蒙版位置进行精确微调。
- Drop Zone Size
这里定义的是可保证拖放操作有效的拖放图像并松开鼠标时,鼠标所处范围之大小。
- File Name
用作蒙版的图像的名称。你必需制作一个带有黑色区域的图像,这块区域将控制你拖放的图像的显露。
- Placeholder Image
此图像将作为拖放区的默认显示图像,直至你拖放了其它图像为止。
- Overlay Image
如果你想在所拖放的图像上覆盖一些锦上添花的装饰(内投影之类) ,那么你只需在此加上这些装饰性图像的名称。
下面是同一文件中另一段需要解释的代码:
[code lang='xml']Folder Name
Family Newsletter.mailstationery
HTML File
content.html
Images
header.png
bottom.png
Stationery ID
52CF436E-68DA-4842-A638-2B912C5F7361
Thumbnail Image
thumbnail.png[/code]
- Folder Name
你所制作的模板,即 .mailstationery 文件的名称。
- HTML File
包含模板 HTML 内容的文件的名称。
- Image
类似于之前介绍的 Background Images ,这应设置为 HTML 文件中所用图像的列表。
- Stationery ID
据我所知,ID 可以是任何你想用的一串字符。只要这串字符具有唯一性即可。然而建议最好不要这样选 ID,较为妥当的做法是在 Terminal 中使用 Leopard 添加的命令 uuidgen,使用此命令创建的字符串被称为 “Universally Unique ID” ,这样的字符串可保证其独特性。
- Thumbnail Image
一张尺寸为 69 × 90 px 的你所制作或编辑的模板之缩略式预览图。这将被用于 Mail 中的模板列表中。
总结之
相信所有这些是需要一定的阅读和“消化”, 并且它们看起来很复杂。下载教程文件、多钻研钻研。另外多去研究一下由 Apple 设计的模板,看看它们都使用了什么样的代码。试着编辑一些预置的模板(动手编辑前可别忘了备份噢 ! ),这样你可以对各段代码的作用有切身体会,随后你就可以着手制作自己的模板了。几经尝试及出错,你将能很快地掌握模板的制作。
免责声明
本人在自己的 Mac 上使用过并仍在使用以上所有代码。 The Apple Blog 和 Cocoatacious 对任何由于修改此类文件所造成的后果不负责任。虽然本人实在无法想像本教程所涉及操作能造成任何实际损失……但此免责声明仍旧如此。
点击 此处 下载教程文件
另外附上我用 Pages 排版后导出制作的本文相应的PDF。希望作为读者的你喜欢!
相关文章推荐: