zipファイルをbase64でエンコードされた文字列に変換するときに、使用するMIMEサポートを使用してメールを送信するために必要な文字列
var encodedContent = Convert.ToBase64String(Encoding.ASCII.GetBytes(File.ReadAllText(zipFilePath)));
ただし、受け取った添付ファイルはすべて破損しています。base64エンコーディングが正しくないようです。誰でもこれについてアドバイスできますか?
File.ReadAllText
はtextを読み取るように設計されているため、エンコーディングを適用します (また、オーバーロードはヒューリスティックを適用してエンコーディングを決定します)。これが、バイトを取得するために「エンコードを解除」する必要がある理由です。
このように異なるエンコーディングを適用すると、バイト ストリームが変更される可能性があります (これがエンコーディングのポイントです)。
File.ReadAllBytes
に直接渡すことができるようなものを使用して、ファイルからバイトを直接読み取ることをお勧めしますToBase64String
。