至于紧凑型框架 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);
}
我不明白我是否遗漏了什么。请帮助我。