Каким должен быть путь при включении изображений в MvCMailer Mail - PullRequest
0 голосов
/ 21 декабря 2011

я пытаюсь внедрить изображение при отправке электронного письма с MvCMailer следующим образом:

    Dictionary<string,string> resources = new Dictionary<string,string>();
    resources["logo"] = new Uri(new Uri(string.Format("{0}://{1}{2}", System.Web.HttpContext.Current.Request.Url.Scheme, System.Web.HttpContext.Current.Request.Url.Authority, Url.Content("~"))), "/Content/images/logo.png").ToString();
    mailSender.Confirm(user.Username, user.Email, link,resources).Send();

Как это сгенерировать:

URI formats are not supported.

Я не уверен, какой путь ядолжен отправить, и как его сгенерировать?

Stack Trace:

     at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
   at System.Net.Mail.AttachmentBase.SetContentFromFile(String fileName, ContentType contentType)
   at Mvc.Mailer.LinkedResourceProvider.Get(String contentId, String filePath)

Ответы [ 2 ]

4 голосов
/ 21 декабря 2011

Пути к ресурсам должны быть локальными, а не URL-адресами.

Запись

resources["logo"] = Server.MapPath("~/Content/images/logo.png");
0 голосов
/ 21 декабря 2011

Вам нужно будет добавить код, чтобы сделать вложение. если это не проблема с правами или разрешениями, попробуйте

public virtual MailMessage Welcome(string email, string name)
{     
   var mailMessage = new MailMessage{Subject = "Welcome to MvcMailer"};
   mailMessage.To.Add(email);
   ViewBag.Name = name;
   PopulateBody(mailMessage, viewName: "Welcome");
   return mailMessage; 
} 
...