アプリケーションから画像付きの HTML レポートを送信する必要があります。レポートがレイアウトされ、レポート内に画像が埋め込まれます。レポートを Web ビューでプレビューすると正しく表示されますが、GMail で受信すると、スタイルと画像が表示されません。
ヘッダー内に埋め込まれた CSS スタイルシートがあります。
以下のようなレポートを送信しています。
NSString* htmlReportString = [ReportManager createReportWithEvent:event];
[mailController addAttachmentData:[htmlReportString dataUsingEncoding:NSUTF8StringEncoding] mimeType:@"text/html" fileName:@"report.html"];
[mailController setMessageBody:htmlReportString isHTML:YES];
.plist から取得し、レポート ヘッダーとして追加するのは次のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>template1</key>
<string>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Report</title>
<style type="text/css">
.statHead {
font-family: Arial, Helvetica, sans-serif;
font-size: 30px;
font-weight: bold;
color: #FFF;
}
.statSub {
font-family: Arial, Helvetica, sans-serif;
font-size: 14px;
font-weight: normal;
color: #FFF;
}
.repHead {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
color: #000;
}
.repSub {
font-family: Arial, Helvetica, sans-serif;
font-size: 14px;
font-weight: normal;
color: #000;
}
.repLinks {
font-family: Arial, Helvetica, sans-serif;
font-size: 14px;
color: #000;
}
.repSubBullet {
font-family: Arial, Helvetica, sans-serif;
font-size: 14px;
font-weight: normal;
color: #000;
list-style-type: circle;
}
.repSubBold {
font-family: Arial, Helvetica, sans-serif;
font-size: 14px;
font-weight: bold;
color: #000;
}
.topName {
font-family: Arial, Helvetica, sans-serif;
font-size: 34px;
font-weight: bold;
color: #000;
}
.topDate {
font-family: Arial, Helvetica, sans-serif;
font-size: 24px;
font-weight: bold;
color: #000;
}
.topSub {
font-family: Arial, Helvetica, sans-serif;
font-size: 14px;
font-weight: normal;
color: #000;
}
</style>
</head>
<body></string>
</dict>
</plist>
iPhone の Web ビューでレポートをプレビューすると、正しく表示されます。すべてのスタイルが表示され、画像が表示されます。しかし、GMail でレポートを受信すると、画像が見つからず、どのスタイルも表示されません。レポートを保存して Mac のプレビュー アプリで表示すると、レポートは再び正しく表示されます。
この問題の原因は何ですか? エンコーディング/バックスラッシュの問題ですか、それとも Gmail は Apple の Web ブラウザとは異なる方法で HTML を扱いますか?