/ / Wysyłanie wiadomości e-mail z problemem z załącznikiem - c #, e-mail, model-widok-kontroler, załącznik

Wysyłanie wiadomości e-mail z problemem z załącznikiem - c #, e-mail, model-widok kontroler, załącznik

Próbuję wysłać wiadomość e-mail do innej osobyużytkownicy (z załącznikiem). E-mail jest wysyłany, ale tylko jeden użytkownik otrzymuje załącznik (plik obrazu). Inni odbiorcy otrzymują coś w rodzaju pustego obrazu lub zdjęcia o nazwie i bajcie zerowym.

Naprawdę nie rozumiem, co się dzieje. Oto kod, którego użyłem do wysyłania e-maili:

public void SendWithFile(string recipientName, string body, string subject = null, HttpPostedFileBase emailFile = null)
{
using (var msg = new MailMessage())
{
msg.To.Add(recipientName);
msg.From = new MailAddress(ConfigurationManager.AppSettings["MailServerSenderAdress"]);
msg.Subject = subject;
msg.Body = body;
msg.SubjectEncoding = Encoding.UTF8;
msg.BodyEncoding = Encoding.UTF8;
msg.IsBodyHtml = true;
msg.Priority = MailPriority.Normal;

using (Attachment data = new Attachment(emailFile.InputStream, Path.GetFileName(emailFile.FileName), emailFile.ContentType))
{
msg.Attachments.Add(data);

using (var client = new SmtpClient())
{
//client configs
try
{
client.Send(msg);
}
catch (Exception ex)
{
throw ex;
}
}
}
}
}

i tu właśnie nazywam metodę wysyłania e-maili:

foreach (var recipent in notesRecipients)
{
if (!string.IsNullOrEmpty(userEmail))
{
if (emailFile != null)
emailService.SendWithFile(userEmail, message, null, emailFile);
}
}

Odpowiedzi:

0 dla odpowiedzi № 1

Musisz odszukać strumień od początku, jak poniżej, zanim wyślesz załącznik:

emailFile.InputStream.Position = 0;

Aby uzyskać więcej informacji, możesz zapoznać się z tym pytaniem tutaj: połączyć