0

わかりました、これは少し奇妙です....

電子メールとして送信したい HTML ページが Safari にあります。ファイル メニューに移動し、「このページのメール コンテンツ」を選択すると、期待どおりに転送され、正しく表示されます。

ただし、Scripting Bridge を使用して送信メッセージに受信者を追加すると、追加された各受信者のメッセージ コンテンツ領域の先頭に次のコードが追加されます。1 つの例では、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];

* 編集 *

問題の回避策を見つけましたが、受信者を追加するときにこのコードが本文に挿入される理由を知りたいと思います...回避策は次のとおりです: CSS セクションに以下を挿入しました私のHTMLテンプレートの...

div {
display:none;
}

したがって、表示では html テンプレート内のすべての div タグが無視されます。上記のコードのコピーがまだ 24 個ありますが、それらは基本的に無視され、視覚的なレイアウトの問題が解決されます。

誰かがより良い解決策を持っている場合は、私に知らせてください!

4

1 に答える 1