0

As for Compact Framework SMTP クライアントはサポートされていません。私は自分の SMTP クライアントを c# で書いています (コンパクトなフレームワークで使用するため)。

SMTP プロトコルを使用して 1 つの画像ファイルを送信しています。しかし、yahoo で開くと破損し、gmail では正常に動作します。

message = "--sdfsafsafsassfsfsfd" + Constant.CRLF
        + "Content-Type: application/image;" + Constant.CRLF
        + "Content-Transfer-Encoding: base64;" + Constant.CRLF
        + "Content-Disposition: attachment;" 
        + " filename=abc.jpg;" + Constant.CRLF + Constant.CRLF;

以下は、ファイル データの base64 文字列を取得するために使用されるコードです。

public void SendFile(string fileName)//image/doc file
    {
      string base64;
      using (var fs = new FileStream(fileName, FileMode.Open, FileAccess.Read))
      {
        var buffer = new byte[fs.Length];
        fs.Read(buffer, 0, (int)fs.Length);
        base64 = Convert.ToBase64String(buffer);
      }

      Write(base64); 
    }

public void Write(string message)
{
  System.Text.ASCIIEncoding en = new System.Text.ASCIIEncoding();
  byte[] WriteBuffer = new byte[1024 * 5];
  WriteBuffer = en.GetBytes(message);
  NetworkStream stream = GetStream();
  stream.Write(WriteBuffer, 0, WriteBuffer.Length);
}

何かが欠けているかどうかわかりません。これで私を助けてください。

4

1 に答える 1

0

「Content-Type:image/jpeg;」を使ってみてください 「アプリケーション/イメージ」の代わりに。

于 2012-10-17T14:57:44.040 に答える