Итак, я уже немного стучу по этому вопросу и не могу понять, как сделать снимок, сделанный веб-камерой, и прикрепить его к электронному письму.Оба успешно отправили письмо с прикрепленным изображением.Однако, когда я пытаюсь открыть изображение, оно не открывается.
Сначала я попытался использовать LightBuzz.SMTP
private async Task<SmtpResult> SendAlertEmail(List<CapturedPhoto> images)
{
using (SmtpClient client = new SmtpClient("smtp.gmail.com", 465, true, "mygmail@gmail.com", "myPassword"))
{
EmailMessage emailMessage = new EmailMessage();
emailMessage.Sender.Address = "IoTAlertApp@donotreply.com";
emailMessage.Sender.Name = "IoT App";
emailMessage.To.Add(new EmailRecipient("myemail@gmail.com"));
emailMessage.Subject = "ALERT | MOTION DETECTED";
emailMessage.Body = "This is an email sent from a UWP app!";
foreach (CapturedPhoto image in images)
{
int imageCount = 1;
string fileName = "image_" + imageCount + "_" + DateTime.Now.Ticks + ".jpg";
RandomAccessStreamReference reference = RandomAccessStreamReference.CreateFromStream(image.Frame.CloneStream());
emailMessage.Attachments.Add(new EmailAttachment(fileName, reference));
break;
}
images.Clear();
SmtpResult result = await client.SendMailAsync(emailMessage);
return result;
}
}
Затем я попытался использовать EASendMailRT
и получил тот же результат
private async Task Send_Email(byte[] image)
{
String Result = "";
try
{
SmtpMail oMail = new SmtpMail("TryIt");
SmtpClient oSmtp = new SmtpClient();
oMail.From = new MailAddress("IoTSquatter@DoNotReply.com");
oMail.To.Add(new MailAddress("myemail@gmail.com"));
oMail.Subject = "ALERT | MOTION DETECTED";
SmtpServer oServer = new SmtpServer("smtp.gmail.com");
oServer.User = "myemail@gmail.com";
oServer.Password = "password";
oServer.Port = 465;
oServer.ConnectType = SmtpConnectType.ConnectSSLAuto;
Attachment oAttachment = oMail.AddAttachment("testImage.jpg",image);
string contentID = "test001@host";
oAttachment.ContentID = contentID;
oMail.HtmlBody = "<html><body>this is an <img src=\"cid:"
+ contentID + "\"> embedded picture.</body></html>";
await oSmtp.SendMailAsync(oServer, oMail);
Result = "Email was sent successfully!";
}
catch (Exception ep)
{
Result = String.Format("Failed to send email with the following error: {0}", ep.Message);
}
}
Я не уверен, что делаю не так.Я думаю, что это связано с форматом файла.