|
分類:[C#]
はじめまして。hiro4110と申します。
C#でau携帯に、絵文字をHTMLメールにて送信したいのですが、 一部の絵文字は送信できるようになったのですが、 AUのE-MAIL送出用S-JISの絵文字CDの頭2ケタが(EB〜EC)の絵文字が、すべて「・」になって、送信されてしまいます。
これらの絵文字も送れるようにしたいのですが、 どなたか絵文字・C#に詳しいかたいらっしゃいましたら、是非教えて下さい。
−−−−−−−−−−−−−−−−−− using System; using System.Collections.Generic; using System.Text; using System.Net.Mail; using System.Net.Sockets; using System.IO; using System.Net.Mime;
namespace ConsoleApplication2 { class Program { static void Main(string[] args) { Send_JIS_Mail(); }
static string Enco(int code) //S-JIS 変換 { byte[] data = { (byte)(code / 256), (byte)(code % 256) }; return System.Text.Encoding.GetEncoding(932).GetString(data); }
private static string myEncode(string str, Encoding enc) //base64 変換 { string base64str = Convert.ToBase64String(enc.GetBytes(str)); return string.Format("=?{0}?B?{1}?=", enc.BodyName, base64str); }
private static void Send_JIS_Mail() { SmtpClient smtp = new SmtpClient(); MailMessage msg = new MailMessage(); Encoding myEnc = Encoding.GetEncoding("iso-2022-jp");
// 送信元 msg.From = new MailAddress( "XXXXXXXXXXXXXXXX@co.jp", myEncode("送信元", myEnc)); // 送信先 msg.To.Add(new MailAddress( "XXXXXXXXXXXXXXX@ezweb.ne.jp", myEncode("送信先", myEnc))); // 件名 msg.Subject = myEncode("件名", myEnc);
msg.IsBodyHtml = true;
// TEXTメール本文 msg.Body = "こんにちわ!!";
// HTMLメール本文 string sBody = "<html><body bgcolor = \"#ffff00\">" + "<div>絵文字⇒</div>" + Enco(0xEB59) + Enco(0xEB5A) + "</body></html>";
AlternateView altView = AlternateView.CreateAlternateViewFromString( sBody, myEnc, System.Net.Mime.MediaTypeNames.Text.Html);
// Content-Transfer-Encoding: 7bit altView.TransferEncoding = System.Net.Mime.TransferEncoding.SevenBit;
// altViewをメッセージに追加 msg.AlternateViews.Add(altView);
// SMTPサーバ smtp.Host = "XXXXXXXX.co.jp";
try { // 送信 smtp.Send(msg); }
catch (SmtpException exc) { // SMTPサーバー接続失敗時のエラー処理 // メッセージは、excですので、それを表示してもOK。 }
//後始末 msg.Dispose();
} } }
|