diff options
author | brandonmwest <brawest@gmail.com> | 2012-07-13 15:11:29 -0700 |
---|---|---|
committer | brandonmwest <brawest@gmail.com> | 2012-07-13 15:11:29 -0700 |
commit | 1e3816f93799c66c59ad89e01ee42c858ffda0a9 (patch) | |
tree | c6c45dcce65a962a262f3818e012762347c231b1 /SendGrid/SendGridMail/StreamedFileBody.cs | |
parent | 2a9fcb7557b8054ae6550898a9f796f40ec59c75 (diff) | |
parent | cbfe73a74a42120d3c061633c45e1c99f1921ae2 (diff) | |
download | sendgrid-csharp-1e3816f93799c66c59ad89e01ee42c858ffda0a9.zip sendgrid-csharp-1e3816f93799c66c59ad89e01ee42c858ffda0a9.tar.gz sendgrid-csharp-1e3816f93799c66c59ad89e01ee42c858ffda0a9.tar.bz2 |
Merge pull request #7 from brandonmwest/master
Merge streaming-attachments branch, add test for X-SMTPAPI header "to" array
Diffstat (limited to 'SendGrid/SendGridMail/StreamedFileBody.cs')
-rwxr-xr-x | SendGrid/SendGridMail/StreamedFileBody.cs | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/SendGrid/SendGridMail/StreamedFileBody.cs b/SendGrid/SendGridMail/StreamedFileBody.cs new file mode 100755 index 0000000..6bb5ec1 --- /dev/null +++ b/SendGrid/SendGridMail/StreamedFileBody.cs @@ -0,0 +1,42 @@ +using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using CodeScales.Http.Entity.Mime;
+using CodeScales.Http.Network;
+
+namespace SendGridMail
+{
+ public class StreamedFileBody : Body
+ {
+ private string _name;
+ private string _filename;
+ private byte[] _content;
+
+ public StreamedFileBody(MemoryStream stream, String name)
+ {
+ if (stream == null) throw new ArgumentException("Invalid attachment stream");
+ if (String.IsNullOrEmpty(name)) throw new ArgumentException("Invalid attachment name");
+
+ _name = "files[" + Path.GetFileName(name) + "]";
+ _filename = name;
+ _content = stream.ToArray();
+ }
+
+ public byte[] GetContent(string boundry)
+ {
+ var bytes = new List<byte>();
+
+ string paramBoundry = "--" + boundry + "\r\n";
+ string stringParam = "Content-Disposition: form-data; name=\"" + _name + "\"; filename=\"" + _filename + "\"\r\n";
+ string paramEnd = "Content-Type: image/png\r\n\r\n";
+ string foo = paramBoundry + stringParam + paramEnd;
+
+ bytes.AddRange(Encoding.ASCII.GetBytes(paramBoundry + stringParam + paramEnd));
+ bytes.AddRange(_content);
+ bytes.AddRange(Encoding.ASCII.GetBytes("\r\n"));
+ return bytes.ToArray();
+ }
+ }
+}
|