Pregunta

Me pregunto si puede ayudarme a agregar un objeto de unión de memoria de memoria para el archivo adjunto de correo electrónico usando RESTSHARP?

Aquí está el código que obtuve de Mailgun, pero está adjuntando un archivo físico en este ejemplo:

gracias.

public static IRestResponse SendComplexMessage() {
       RestClient client = new RestClient();
       client.BaseUrl = "https://api.mailgun.net/v2";
       client.Authenticator =
               new HttpBasicAuthenticator("api",
                                          "key-3ax6xnXXXXXXXX");
       RestRequest request = new RestRequest();
       request.AddParameter("domain",
                            "samples.mailgun.org", ParameterType.UrlSegment);
       request.Resource = "{domain}/messages";
       request.AddParameter("from", "Excited User <me@samples.mailgun.org>");
       request.AddParameter("to", "foo@example.com");
       request.AddParameter("cc", "baz@example.com");
       request.AddParameter("bcc", "bar@example.com");
       request.AddParameter("subject", "Hello");
       request.AddParameter("text", "Testing some Mailgun awesomness!");
       request.AddParameter("html", "<html>HTML version of the body</html>");

// I need to add memorystream object here ---
       request.AddFile("attachment", Path.Combine("files", "test.jpg"));
       request.AddFile("attachment", Path.Combine("files","test.txt"));
// -------------------------------------------

       request.Method = Method.POST;
       return client.Execute(request);
}

¿Fue útil?

Solución

lo suficientemente fácil.Use la sobrecarga que toma el archivo como una matriz de bytes.Asumiendo

using(var memoryStream = new MemoryStream(File.ReadAllBytes("test.jpg")))

o similar en algún lugar anterior, todo lo que necesita hacer es

request.AddFile("attachment", memoryStream.ToArray(), "test.jpg");    

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top