Можете ли вы использовать URL, чтобы встроить изображение в MVCMailer
Рассматривая MVCMailer шаг за шагом, я вижу, что вы можете встроить изображения в строку, используя cid в HTML.
https://github.com/smsohan/MvcMailer/wiki/MvcMailer-Step-by-Step-Guide
Я вижу код, который говорит о встраивании:
@Html.InlineImage("logo", "Company Logo")
var resources = new Dictionary<string, string>();
resources["logo"] = logoPath;
PopulateBody(mailMessage, "WelcomeMessage", resources);
Мой вопрос, а не использовать путь внутри сайта, как:
resources["logo"] = Server.MapPath("~/Content/images/logo.png");
Можно ли как-то получить изображения, которые есть в облаке Azure или в облаке S3, где у меня достаточно места?
Пожалуйста, дайте мне знать, если есть способ получить изображение из какого-либо другого источника, кроме сервера, на котором работает почтовая программа MVC.
Спасибо Виктор
1 ответ
В Server.MapPath(my_path) my_path указывает относительный или виртуальный путь для сопоставления с физическим каталогом. Server.MapPath связан с локальным FileSystemObject, поэтому в этом случае он будет искать файл (переданный в качестве параметра) в местоположении на локальном веб-сервере. Более подробная информация описана здесь:
http://msdn.microsoft.com/en-us/library/ms524632(v=VS.90).aspx
Поэтому, если изображение находится по адресу http://azure_storage_name.blob.core.windows.net/your_public_container/image_name.jpg, передача его в Server.MapPath() не будет работать, поскольку это не местоположение в локальной файловой системе. Я попытался и обнаружил, что это не примет, и я также пытаюсь настроить несколько способов, но безуспешно. Если вы можете изменить код и который может получить доступ к ресурсам с URL-адреса, это будет работать иначе.