Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 发送邮件时传递参数_C#_Asp.net_Html Email - Fatal编程技术网

C# 发送邮件时传递参数

C# 发送邮件时传递参数,c#,asp.net,html-email,C#,Asp.net,Html Email,我接到一项任务,要在asp.net c#中构建休假管理应用程序,在休假应用程序中,当员工填写所需的详细信息并按下“应用”按钮时,应向各自的经理发送一封邮件,内容如下: “你好{经理} {LoggedInUser}已请求{NumofDays}的{TypeofLeave}请登录门户接受或拒绝它 多谢各位。” 我能够收到邮件,但我需要的是代替{Manager}、{TypeoLeave}、{numodies}和{LoggedInUser}。我需要经理的姓名、登录用户、员工申请的休假类型以及休假天数。它应

我接到一项任务,要在asp.net c#中构建休假管理应用程序,在休假应用程序中,当员工填写所需的详细信息并按下“应用”按钮时,应向各自的经理发送一封邮件,内容如下:

“你好{经理}

{LoggedInUser}已请求{NumofDays}的{TypeofLeave}请登录门户接受或拒绝它

多谢各位。”

我能够收到邮件,但我需要的是代替{Manager}、{TypeoLeave}、{numodies}和{LoggedInUser}。我需要经理的姓名、登录用户、员工申请的休假类型以及休假天数。它应该从数据库中提取

例如:“你好,ABC

XYZ已申请病假5天,请登录门户网站接受或拒绝病假

多谢各位。”

现在我得到了上面的tsame结构

请帮帮我

protected void BtnApply_Click(object sender, EventArgs e)
    {
        MTMSDTO objc = new MTMSDTO();

        int Flag = 0;

        LblLogdInUser.Text = Session["EmpName"].ToString();
        objc.LoggedInUser = LblLogdInUser.Text;
        objc.TypeofLeave = DrpTypeofLeave.SelectedItem.Text;

        string date;
        date = Convert.ToDateTime(TxtBeginDate.Text).ToString("dd/MM/yyyy");

        DateTime dt = new DateTime();
        dt = Convert.ToDateTime(date);

        objc.BeginDate = dt;
        objc.EndDate = Convert.ToDateTime(TxtEndDate.Text);
        objc.Description = TxtDescription.Text;
        objc.NumofDays = Convert.ToInt32(TxtNumofDays.Text);
        //objc.EmpName = LblLogdInUser.Text;
        objc.Status = TxtStatus.Text;


        int X = obj.InsertLeave(objc);
        {
            if (X >= 0)
            {
                Flag = 1;
            }
            else
            {
                Flag = 0;
            }
        }

        if (Flag == 1)
        {
            LblSuccess.Visible = true;
            LblSuccess.Text = "Data Added Successfully and Leave Application Succesfully Sent";
            DrpTypeofLeave.ClearSelection();
            TxtBeginDate.Text = "";
            TxtEndDate.Text = "";
            TxtDescription.Text = "";
            TxtNumofDays.Text = "";
            TxtStatus.Text = "";
        }
        else
        {
            LblErr.Visible = true;
            LblErr.Text = "Failed To Add Data and Send Leave Request!!!";
        }

        objc.EmpName = Convert.ToString(Session["EmpName"]);
        DataSet GrdLH = obj.GrdLeaveHistory(objc);
        DataView GrdLeaveH = new DataView();
        GrdLeaveH.Table = GrdLH.Tables[0];
        GridViewLeaveHistory.DataSource = GrdLeaveH;
        GridViewLeaveHistory.DataBind();


        MailMessage message = new MailMessage();
        message.To.Add("abcer@abc.in");
        message.Subject = "Leave Request";
        message.From = new MailAddress("abc@gmail.com");
        message.IsBodyHtml = true;

        message.Body = "<span style = font-family:Arial,font-size:10pt>";
        message.Body += "Hello <b>{Manager}</b>,<br /><br />";
        message.Body += "{LoggedInUser}has requested {TypeofLeave} for {NumofDays}"; 
        message.Body += "kindly login to the portal to accept or reject it";
        message.Body += "<br />";
        message.Body += "<br />";
        message.Body += "Thank You.<br />";
        message.Body += "</span>";
        SmtpClient smtp = new SmtpClient("");
        smtp.Send(message);
    }
protectedvoidbtnapply\u单击(对象发送方,事件参数)
{
MTMSDTO objc=新的MTMSDTO();
int标志=0;
LblLogdInUser.Text=会话[“EmpName”].ToString();
objc.LoggedInUser=LblLogdInUser.Text;
objc.TypeofLeave=DrpTypeofLeave.SelectedItem.Text;
字符串日期;
日期=Convert.ToDateTime(TxtBeginDate.Text).ToString(“dd/MM/yyyy”);
DateTime dt=新的DateTime();
dt=转换到日期时间(日期);
objc.BeginDate=dt;
objc.EndDate=Convert.ToDateTime(TxtEndDate.Text);
objc.Description=TxtDescription.Text;
objc.NumofDays=Convert.ToInt32(TxtNumofDays.Text);
//objc.EmpName=LblLogdInUser.Text;
objc.Status=TxtStatus.Text;
int X=对象插入离开(objc);
{
如果(X>=0)
{
Flag=1;
}
其他的
{
Flag=0;
}
}
如果(标志==1)
{
LblSuccess.Visible=true;
lblsucces.Text=“数据添加成功,离开申请成功发送”;
DrpTypeofLeave.ClearSelection();
TxtBeginDate.Text=“”;
TxtEndDate.Text=“”;
TxtDescription.Text=“”;
TxtNumofDays.Text=“”;
TxtStatus.Text=“”;
}
其他的
{
LblErr.Visible=true;
LblErr.Text=“添加数据和发送请假请求失败!!!”;
}
objc.EmpName=Convert.ToString(会话[“EmpName]”);
数据集GrdLH=obj.GrdLeaveHistory(objc);
DataView GrdLeaveH=新数据视图();
grdlaveh.Table=GrdLH.Tables[0];
GridViewLeaveHistory.DataSource=GrdLeaveH;
GridViewLeaveHistory.DataBind();
MailMessage=新的MailMessage();
message.To.Add(“abcer@abc.in");
message.Subject=“请假”;
message.From=新邮件地址(“abc@gmail.com");
message.IsBodyHtml=true;
message.Body=“”;
message.Body+=“你好{Manager},

”; message.Body+=“{LoggedInUser}已为{NumofDays}请求了{TypeofLeave}”; message.Body+=“请登录门户接受或拒绝”; message.Body+=“
”; message.Body+=“
”; message.Body+=“谢谢你。
”; message.Body+=“”; SmtpClient smtp=新SmtpClient(“”); smtp.Send(message); }
与在运行时创建html模板不同,我们可以在文本或html文件中定义一个模板,其中包含所有的占位符(如{ManagerName}、{RequestedUser})。在发送邮件时,我们可以从数据库中提供键为{ManagerName}、{RequestedUser}、值为其各自值的字典。现在读取该文件,然后我们可以迭代字典中的键,并用它们在模板中的值替换键。在完成这些操作之后,我们创建了消息体。

而不是在运行时创建html模板,我们可以使用所有占位符(如{ManagerName}、{RequestedUser})在文本或html文件中定义模板。在发送邮件时,我们可以从数据库中提供键为{ManagerName}、{RequestedUser}、值为其各自值的字典。现在读取该文件,然后我们可以迭代字典中的键,并用它们在模板中的值替换键。完成这些操作后,我们创建了消息正文。

将您的代码更改为以下内容:[确保您在会话中存储了经理姓名、登录用户名、休假类型和无休日或您喜欢的任何内容,但相应地更改变量]

  message.Body += "Hello <b>"+Session["Manager"].ToString()+"</b>,<br /><br />";
  message.Body += Session["LoggedInUser"].ToString()+"has requested"+
                  Session["TypeOfLeave"].ToString()+"for "+Session["NoOfDays"].ToString()+
  mesaage.Body += "kindly login to the portal to accept or reject it";
message.Body+=“Hello”+会话[“Manager”].ToString()+”,

; message.Body+=会话[“LoggedInUser”]。ToString()+“已请求”+ 会话[“TypeOfLeave”].ToString()+“for”+会话[“NoOfDays”].ToString()+ mesaage.Body+=“请登录门户接受或拒绝”;
将代码更改为以下内容:[确保您在会话或您喜欢的任何内容中存储了经理姓名、登录用户名、休假类型和无休日,但相应地更改变量]

  message.Body += "Hello <b>"+Session["Manager"].ToString()+"</b>,<br /><br />";
  message.Body += Session["LoggedInUser"].ToString()+"has requested"+
                  Session["TypeOfLeave"].ToString()+"for "+Session["NoOfDays"].ToString()+
  mesaage.Body += "kindly login to the portal to accept or reject it";
message.Body+=“Hello”+会话[“Manager”].ToString()+”,

; message.Body+=会话[“LoggedInUser”]。ToString()+“已请求”+ 会话[“TypeOfLeave”].ToString()+“for”+会话[“NoOfDays”].ToString()+ mesaage.Body+=“请登录门户接受或拒绝”;
你在哪里替换占位符?为什么不创建变量-给它们值并在message.body字符串中使用它们?你在哪里替换占位符?为什么不创建变量-给它们值并在message.body字符串中使用它们?我也有这个选项。。我有一个html文件,其中有相同的地方持有人。。。但是dnt不知道如何将值传递给它。您可以读取文件并将值保存在字符串中。字符串fileContent=File.ReadAllText(“文件路径”);及