MailSend()を使用してUnicodeのメール送信をしてい
お世話になります。
MailSend()でメール送信するのですが、unicode(ベトナム語)のメールを
送信したいのですが、頑張って見ましたが出来ません。
皆さんの知恵をお借りしたいのです。
よろしくお願いいたします。
※もちろん、日本語、英文は普通に出来ています。
-
いろいろな方法があるかと思いますが、基本的にはメールで使用する文字コードを強制的にエンコーディングしてやるということだと思います。ISHIJIMAさんの方法もそのひとつですね。
-
ISHIJIMAさんのMailFrameworkのやり方の方がスマートだと思いますが、一応参考までに私のところの方法を記載します。
私のところのシステムだと環境だとMailSend()でのメールサーバのTLS/SSLの認証がうまくいかずPowerShellでメールを送信しています。
(私がよくわかっていないとき(今でも自身がない)だったのでMailSend()の使い方が間違っていたのだと思います)- Unicodeでメール本文のTextを出力。
- 外部コールOSでbatファイルを実行。
batファイルの内容
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -c {実行したいPowershell} - Powershellの中身
$mail = @{
from = "{送信元}";
to = @("{宛先1}","{宛先2}・・・");
smtp_server = "{smtpサーバ}";
smtp_port = {smtpサーバのポート};
user = "{メールを送信するアカウント}";
password = "{メールを送信するアカウントのパスワード}";
subject = "{件名}";
mail_body = "";
mail_Attachments = "{添付ファイルのパス}"
}$password = ConvertTo-SecureString $mail["password"] -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential $mail["user"], $password
$mail_body = Get-Content -LiteralPath "{メール本文}" -RawSend-MailMessage -From $mail["from"] `
-To $mail["to"] `
-SmtpServer $mail["smtp_server"] `
-Credential $credential `
-Port $mail["smtp_port"] `
-Subject $mail["subject"] `
-Body $mail["mail_body"] `
-Attachments $mail["mail_Attachments"] `
-Encoding UTF8 `
-UseSsl -
皆さん。
いろいろ、ご指導有り難うございました。
まずは、ISHIJIMAさんの方法でテストしてみます。
続いて、今後の勉強を兼ねてhiraさんのPowerShellでの
メールを送信にチャレンジしてみます。
-
ISHIJIMA様
お世話になりました。
教えていただきました環境を整えたところ、無事に
ベトナム語も、文字化けせずに送信出来ました。
有り難うございました。
hira様のPowerShellもチャレンジしましたが、まだ、
うまく、動いてくれませんでした。
後日、落ち着いて頑張る予定です。
皆さん、有り難うございました。
サインインしてコメントを残してください。
コメント
4件のコメント