ExwarpMailKit1.0.438.*以降のライブラリ+Exwarp.Module.EmojiModuleを利用すると、絵文字を簡単に作成することができます。
最新版をダウンロードしてください。
[C#]
Exwarp.Net.RFC.MIME.MIMETransform.RawEncoding = true; //(0)
Exwarp.Net.Mail.MailMessage mail = new Exwarp.Net.Mail.MailMessage(System.Text.Encoding.ASCII); //(1)
Exwarp.Module.ModuleLoader ml = new Exwarp.Module.ModuleLoader(mail); //(2)
ml.LoadModule("Exwarp.Module.EmojiModule.dll"); //(3)
mail.To = "mail_to@docomo.ne.jp"; //(4)
mail.From = "mail_from@myhost.com";
mail.RunCommand("Emoji_SetSubject","<emoji:1>絵文字メール"); //(5)
mail.RunCommand("Emoji_SetBody","<emoji:100>絵文字本文"); //(6)
Exwarp.Net.Smtp.SmtpClient client = new Exwarp.Net.Smtp.SmtpClient("HOST_NAME");
if(client.Connect())
{
client.SendReceive(mail);
client.Close();
}
[VB.NET]
Exwarp.Net.RFC.MIME.MIMETransform.RawEncoding = True '(0)
Dim mail As New Exwarp.Net.Mail.MailMessage(System.Text.Encoding.ASCII) '(1)
Dim ml As New Exwarp.Module.ModuleLoader(mail) '(2)
ml.LoadModule("Exwarp.Module.EmojiModule.dll") '(3)
mail.To = "mail_to@docomo.ne.jp" '(4)
mail.From = "mail_from@myhost.com"
mail.RunCommand("Emoji_SetSubject","<emoji:1>絵文字メール") '(5)
mail.RunCommand("Emoji_SetBody","<emoji:100>絵文字本文") '(6)
Dim client As New Exwarp.Net.Smtp.SmtpClient("HOST_NAME")
If client.Connect() Then
client.SendReceive(mail)
client.Close()
End If
[解説]
(0)Exwarp.Net.RFC.MIME.MIMETransformのRawEncodingプロパティにTrueをセットします。
これは、1.0.438より前のバージョンでau携帯への絵文字付の件名が表示されないバグに対処するために必要です。
(1)Exwarp.Net.Mail.MailMessageのインスタンスを作成します。このときのエンコーディングは何でもOKです。
(2)Exwarp.Module.ModuleLoaderのインスタンスを作成します。このときパラメータにモジュールを追加したいMailMessageインスタンスを渡します。
(3)LoadModuleメソッドを呼び出して、モジュールをロードします。
モジュールdllへのパスを表す文字列をセットします。実行ファイルと同じディレクトリにコピーしておくとファイル名だけで済むのでお勧めです。(別にモジュールの位置はどこでも構いません。参照を追加しておく必要もありません。)
(4)必ず最初にMailMessageのToプロパティをセットしておきます。この値を元に絵文字データが変換されます。
(5)モジュールをロードするとEmoji_SetSubjectカスタムオペレーションが実行できるようになります。通常の文字列の任意の場所に<emoji:***>と記述すると内部でバイナリに自動変換します。(***の部分はdocomoの絵文字番号を入力します。)
(6)(5)と同じ要領でEmoji_SetBodyカスタムオペレーションを実行します。絵文字の挿入方法は同じです。
あとは通常のメール送信を行います。特別な操作は必要ありません。
追加事項
Emoji_SetSubjectおよびEmoji_SetBodyカスタムオペレーションに2番目の引数をセットすることができます。これは任意の絵文字変換テーブルファイルへのパスを表す文字列です。
mail.RunCommand("Emoji_SetBody","<emoji:1>","MyEmojiTable.txt")
上の様に記述すると、デフォルトの変換テーブルではなく、自由にカスタマイズした変換テーブルを使って絵文字の変換が行われます。
デフォルトの変換テーブルは、こちらからダウンロードできます。
絵文字コードは必ず半角大文字の英数4桁のタブ区切りで記述します。
docomo,softbankは必ずShift-JISバイナリ用コード、auはEメール送出用JISコードに対応したShift-JISコードを記述します。
176以上の番号を設定することも可能ですが、上限は999です。
注意事項
メールの宛先はひとつに限定するか、同じキャリアのメールアドレスを設定してください。
絵文字によっては表示されないものがあります。これはdocomoの絵文字番号を元にほかのキャリアの絵文字の中からよく似た絵文字に変換しているためで、該当する絵文字が存在しない番号は欠番となります。
]]>