C# 如何获取webjob中azure托管的asp.net核心应用程序的wwwroot文件夹中的图像文件的路径
我使用aspcore控制台应用程序作为Webjob发送预定电子邮件。在这些电子邮件中,我需要在电子邮件标题中包含wwwroot文件夹中的图像。我如何获取该文件的url,以便将其传递到电子邮件html中我的img标记的src属性中?我使用txt文件进行测试,以获取您可以使用C# 如何获取webjob中azure托管的asp.net核心应用程序的wwwroot文件夹中的图像文件的路径,c#,azure,asp.net-core,azure-webjobs,C#,Azure,Asp.net Core,Azure Webjobs,我使用aspcore控制台应用程序作为Webjob发送预定电子邮件。在这些电子邮件中,我需要在电子邮件标题中包含wwwroot文件夹中的图像。我如何获取该文件的url,以便将其传递到电子邮件html中我的img标记的src属性中?我使用txt文件进行测试,以获取您可以使用主页环境的文件路径。它指向Kudu上的D:\home。因此,如果您的文件位于wwwroot中,您可以使用下面的代码来获取它 Environment.GetEnvironmentVariable("HOME") + @"\site
主页
环境的文件路径。它指向Kudu上的D:\home
。因此,如果您的文件位于wwwroot中,您可以使用下面的代码来获取它
Environment.GetEnvironmentVariable("HOME") + @"\site\wwwroot" + @"\test.jpg"
下面是我的示例代码
string rootpath = null;
rootpath = Environment.GetEnvironmentVariable("HOME") + @"\site\wwwroot" + @"\test.jpg";
MailMessage mailMessage = new MailMessage();
mailMessage.From = new MailAddress("xxxxxxxxxx");
mailMessage.To.Add(new MailAddress("xxxxxxxxxxxx"));
mailMessage.Subject = "message image test";
mailMessage.IsBodyHtml = true;
string content = "If your mail client does not support HTML format, please switch to the 'Normal Text' view and you will see this content.";
mailMessage.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(content, null, "text/plain"));
mailMessage.Body += "<br /><img src=\"cid:weblogo\">";
AlternateView htmlBody = AlternateView.CreateAlternateViewFromString(mailMessage.Body, null, "text/html");
LinkedResource lrImage = new LinkedResource(rootpath, "image/jpg");
lrImage.ContentId = "weblogo";
htmlBody.LinkedResources.Add(lrImage);
mailMessage.AlternateViews.Add(htmlBody);
SmtpClient client = new SmtpClient();
client.Host = "smtp.qq.com";
client.EnableSsl = true;
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential("xxxxxxxxxx", "xxxxxxxxxx");
client.Send(mailMessage);
stringrootpath=null;
rootpath=Environment.GetEnvironmentVariable(“HOME”)+@“\site\wwwroot”+@“\test.jpg”;
MailMessage MailMessage=新建MailMessage();
mailMessage.From=新邮件地址(“XXXXXXXXX”);
mailMessage.To.Add(新邮件地址(“XXXXXXXXXXXXX”);
mailMessage.Subject=“消息图像测试”;
mailMessage.IsBodyHtml=true;
string content=“如果您的邮件客户端不支持HTML格式,请切换到“普通文本”视图,您将看到此内容。”;
mailMessage.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(content,null,“text/plain”);
mailMessage.Body+=“
”;
AlternateView htmlBody=AlternateView.CreateAlternateView-FromString(mailMessage.Body,null,“text/html”);
LinkedResource lrImage=新LinkedResource(根路径,“image/jpg”);
lrImage.ContentId=“weblogo”;
htmlBody.LinkedResources.Add(lrImage);
mailMessage.AlternateViews.Add(htmlBody);
SmtpClient=新的SmtpClient();
client.Host=“smtp.qq.com”;
client.enablesl=true;
client.UseDefaultCredentials=false;
client.Credentials=新的网络凭据(“XXXXXXXXX”、“XXXXXXXXX”);
client.Send(mailMessage);
下面是我的邮件,我们可以检查源代码并找到src=“cid:weblogo”
,这意味着图片文件不是本地文件
您可以使用我的代码进行测试,希望这能对您有所帮助。谢谢George的回答。