プログラムでHTML形式の電子メールを送信し、フォント全体をArialとして設定しています(font-family: Arial;
)。メッセージがOutlook 2010に到着すると、table
要素のテキストはTimes New Romanになります。 div
要素のテキストは、Arialでは問題ありません。もし私が View Source
、HTMLファイルへのコピー、ブラウザでの表示、すべてのフォントは期待どおりに機能します(すべてArialです)。
一部のGoogle results は、何も指定されていない場合、Outlookがデフォルトのフォント(Times New Roman)にフォールバックすることを示していますが、それはここで起こっていることではありません。
別の方法で指定されたときにOutlookがTimes New Romanでメールを強制的に表示するのはなぜですか?
font-family: arial
をテーブルに設定しても、機能しません。正しくするには、td
内の各table
のフォントを明確に設定する必要があります。
<!--[if mso]>
<style> body,table tr,table td,a, span,table.MsoNormalTable { font-family:Arial, Helvetica, sans-serif !important; }</style>
<!--<![endif]-->
問題のtable
は、スタイルにfont-family:Arial;
が含まれるdiv
にネストされましたが、table
にはフォントセットがありませんでした。そのため、一部のクライアントでは、テーブルはHTMLメールのコンテナからフォント(およびおそらく他のもの)を継承しません。
この問題はOutlook 2007で発生し、以前のソリューションは機能しませんでした。機能すると思われる唯一のソリューションは、テキストを<font face="arial, sans-serif">My text with arial</font>
Outlook 2007で作業している場合、tableでfont-familyを定義する必要があります。それ以外の場合は、デフォルトのセリフフォントに設定されます。
@ font-faceにリンクされたカスタムフォントを使用して、上記の方法のいずれも機能しませんでした。 Outlookのコンディショナルタグを使用する必要がありました。正確に把握するためにかなり時間がかかりました。だから私はコード例をセットアップしました:私は私の状況でこれを実装するのにまだいくつかの問題を抱えていたので、このためのコード例を共有しました: https://stackoverflow.com/a/21626196/135654
table.MsoNormalTable {font-size:12.0pt; font-family:"Times New Roman";}
テキストパッドでHTMLを開き、Arialに変更します。
<font>タグは廃止されましたが、Outlook 2010は(ほとんどすべての)スタイルを削除しているため、これが唯一の動作方法です。
あなたのスタイルを「スパン」タグに入れることができます、それはうまくいきます。
<td>
<span style="font-family: "Times New Roman"></span>
</td>
私は同じ問題を抱えていた....電子メールの本文のすべてのテキストはArialでしたが、テーブルはデフォルトでWordになりました。各セルでフォントをラップする必要がありました......時間がかかりました。