好的,所以这个有点奇怪......
我在Safari中有一个HTML页面,我想将其作为电子邮件发送。如果我进入FILE菜单并选择“此页面的邮件内容”,它将按预期传输并且看起来正确。
但是,如果我使用Scripting Bridge将收件人添加到外发邮件中,则会将以下代码添加到邮件内容区域的顶部,以便添加每个收件人。在一个示例中,添加了24个收件人,生成的电子邮件包含以下代码的24个连续重复:
<div style=3D"font-family: = Helvetica; font-size: 12px; color: black; text-align: left;">
<br =class=3D"webkit-block-placeholder"></div>
由于div标记的呈现方式,在电子邮件的开头创建了24个换行符,以便我的HTML从页面的下方开始。
任何人都知道为什么要插入此代码?
以下是我用于Scripting Bridge的代码:
SafariDocument *safariDoc = [[[[safari classForScriptingClass:@"document"] alloc]
initWithProperties:[NSDictionary dictionaryWithObject:@"//private/var/tmp/mail.html" forKey: @"URL"]] autorelease];
[[safari documents] addObject:safariDoc];
SafariWindow *safariWindow = [[safari windows] objectAtIndex:0];
[safariWindow emailContentsOf:safariWindow.currentTab];
mailMessage = [[[mail outgoingMessages] objectAtIndex:0] autorelease];
以下是我用来添加收件人的代码:
MailToRecipient *recipient = [[[[mail classForScriptingClass:@"to recipient"] alloc]
initWithProperties:[NSDictionary dictionaryWithObjectsAndKeys:
[preferencesData bandName], @"name",
[preferencesData bandEmail], @"address",
nil]] autorelease];
[[mailMessage toRecipients] addObject:recipient];
*编辑*
我找到了解决这个问题的方法,但我仍然有兴趣知道为什么在添加收件人时这个代码插入到正文中...解决方法如下:我将以下内容插入我的HTML模板的CSS部分......
div {
display:none;
}
因此,显示会忽略html模板中的所有div标签。我仍然有上述代码的24个副本,但它们基本上被忽略了,这解决了我的视觉布局问题。
如果有人有更好的解决方案,请告诉我们!
答案 0 :(得分:0)
Apple似乎不允许您访问您不“拥有”或已在程序中创建的外发邮件。
在上面的代码中,我试图通过使用Safari“网页的电子邮件内容”来解决Apple不允许您将外发电子邮件设置为HTML(他们不喜欢你做的其他事情)的限制,从而在Apple Mail中创建新的外发邮件。
然后我试图通过分配对变量的引用来控制该消息,如下所示:
mailMessage = [[[mail outgoingMessages] objectAtIndex:0] autorelease];
一些研究显示,即使以下代码,mailMessage也显示为“无”:
[[mail outgoingMessages] count];
返回正确的值1。
因此,理论上,我根本无法将收件人添加到Safari创建的HTML电子邮件中。
为什么它有时会起作用而在其他时候不起作用是超出我的。但是当它确实有效时,它也会在代码体中添加格式化标记。我怀疑它只是一个未被捕获的错误,因为它根本不应该工作。