メインコンテンツへスキップ

MailSend()を使用してUnicodeのメール送信をしてい

コメント

4件のコメント

  • Tanda

    いろいろな方法があるかと思いますが、基本的にはメールで使用する文字コードを強制的にエンコーディングしてやるということだと思います。ISHIJIMAさんの方法もそのひとつですね。

  • hira

    ISHIJIMAさんのMailFrameworkのやり方の方がスマートだと思いますが、一応参考までに私のところの方法を記載します。

    私のところのシステムだと環境だとMailSend()でのメールサーバのTLS/SSLの認証がうまくいかずPowerShellでメールを送信しています。
    (私がよくわかっていないとき(今でも自身がない)だったのでMailSend()の使い方が間違っていたのだと思います)

    1. Unicodeでメール本文のTextを出力。
    2. 外部コールOSでbatファイルを実行。
      batファイルの内容
      C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -c {実行したいPowershell}
    3. 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 "{メール本文}" -Raw

    Send-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もチャレンジしましたが、まだ、

    うまく、動いてくれませんでした。

    後日、落ち着いて頑張る予定です。

    皆さん、有り難うございました。

     

サインインしてコメントを残してください。