У меня есть следующий код, который работает, когда у меня нет строки attachment.add. (Я удалил адреса и пароль).
Пожалуйста, помогите, я предполагаю, что я делаю что-то не так с вложением, я просто не уверен, что!
Внутреннее исключение
{System.ObjectDisposedException: невозможно получить доступ к удаленному объекту.
Имя объекта: 'ReferenceReadStream'. в
System.Net.Mime.MimeBasePart.EndSend (IAsyncResult asyncResult) в
System.Net.Mail.Message.EndSend (IAsyncResult asyncResult) в
System.Net.Mail.SmtpClient.SendMessageCallback (результат IAsyncResult)}
[HttpPost]
public async Task<String> PostProfilePicture(IFormFile file, int ID)
{
var name = Guid.NewGuid().ToString("N").ToUpper() + ".png";
try
{
var stream = file.OpenReadStream();
await sendEmail(stream, name);
}
catch (Exception ex)
{
return ex.Message.ToString();
}
return ""
}
public async Task sendEmail(Stream stream, String filename){
var attachment = new Attachment(stream, filename);
var smtpClient = new SmtpClient
{
Host = "smtp.gmail.com", // set your SMTP server name here
Port = 587, // Port
EnableSsl = true,
Credentials = new NetworkCredential("xxxxxxx@gmail.com", "xxxxxxxx")
};
var message = new MailMessage("xxxxxxx@gmail.com", "xxxxxxx@gmail.com");
message.Subject = "Hello Alec!!";
message.Body = "How are you doing.";
message.Attachments.Add(attachment);
await smtpClient.SendMailAsync(message);
}
}