0

至于紧凑型框架 SMTP 客户端不支持;我正在用 c# 编写自己的 SMTP 客户端(用于紧凑框架)。

我正在使用 SMTP 协议发送一个图像文件。但是在雅虎中打开时它已损坏并且在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

尝试使用“内容类型:图像/JPEG;” 而不是“应用程序/图像”。

于 2012-10-17T14:57:44.040 回答