実現したいこと,前提
GASからメール送信をしていて、環境依存文字(𠮷)が文字化けする(髙などは文字化けしていない)。
人名なので代替文字で送付することはなるべく避けたい。
発生している問題
メール本文(下記ソースコードのmail_body)内の該当文字が送信済メールを確認すると文字化けしている。
※具体例:
例えば「髙橋さん」は送信済メールでも「髙橋さん」となっているが、「𠮷田さん」は「������田さん」になってしまう
該当のソースコード
javascript
1function send_mail() { 2 let opt = { 3 from_name: '送付元', 4 from_address: '送付元アドレス', 5 title: '件名', 6 to_address: '送信先アドレス', 7 mail_body: '本文' 8 }; 9 10 Logger.log(opt); // この段階では文字化けしていない 11 // (具体例通りだとmail_body: 𠮷田さん となっている) 12 13 // options内でhtmlBodyに本文を入れてHTMLメールとして送信しても文字化けする 14 let options = {from: opt.from_address, 15 name: opt.from_name, 16 encoding: "UTF-8"}; // encodingは入れても入れなくても変わらなかった 17 18 GmailApp.sendEmail(opt.to_address, opt.title, opt.mail_body, options); 19// 20}
補足情報
Webブラウザから直接メール送信した場合は文字化けしないため、ブラウザは問題なさそうです。
GmailAppから送るとテキスト形式でもHTML形式でも文字化けします。
以下、送信済メールのソースを抜粋して添付します。
テキストメール
Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64
HTMLメール
Content-Type: multipart/alternative; Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
※追記:エイリアスから送信しているためGmailApp.sendEmail()を使用しております。
文字はどの様に化けますでしょうか?
������となります。
問題の文字はどこに入っているのでしょうか。from_name、title、mail_bodyのいずれでしょうか。また「文字化け」しているのはそのうちどこで、「文字化け」していないのはどこでしょうか。
文字化けしているのもしていないのも、いずれもmail_body内の文字です。
コメントで「ここでは文字化けしていない」と言っているる出力の内容の具体例を示してください (このコメント欄に書くのではなく、質問文を編集して書いてください)。
ありがとうございます、質問文編集いたしました。ご指摘の意図が掴めていなかったら申し訳ありませんが、こちらで宜しいでしょうか?
できるなら メールソース上の文字化け箇所(※ base64エンコーディングされている中の文字化け位置の箇所)の情報がほしい感じがしますね。(文字化けの文字化けがどこで発生しているかを確認したい場合
回答2件
あなたの回答
tips
プレビュー