至于紧凑框架不支持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);
}
我不理解我是否遗漏了什么。请帮助我。
答案 0 :(得分:0)
尝试使用“Content-Type:image / jpeg;”而不是“应用程序/图像”。