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 № 1Musisz 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ć