Как мне...как получить идентификатор электронной почты получателя по щелчку ссылки и отправить этот идентификатор электронной почты динамически в качестве параметра строки запроса
У меня есть почтовая программа, в которой я отправляю html-страницу в качестве тела почты.Я использовал переключатели, чтобы сохранить список получателей почты либо из базы данных, либо из листа excel, либо из текстового файла. Вот этот код-
protected void btnSubmit_Click(object sender, EventArgs e) { { SendHTMLMail(); } void SendHTMLMail() { StreamReader reader = new StreamReader(Server.MapPath("~/one.html")); string readFile = reader.ReadToEnd(); Regex regx = new Regex("(?<!src=\")http(s)?://([\\w+?\\.\\w+])+([a-zA-Z0-9\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)_\\-\\=\\+\\\\\\/\\?\\.\\:\\;\\'\\,]*([a-zA-Z0-9\\?\\#\\=\\/]){1})?", RegexOptions.IgnoreCase); string output = regx.ToString(); output = readFile; string username = Server.UrlEncode(this.txtUsername.Text); output = regx.Replace(output, new MatchEvaluator((match) => { var url = Uri.EscapeDataString(match.Value.ToString()); Regex myRegex = new Regex(@"dho-.*([\d])"); Match myMatch = myRegex.Match(url); string Name = myMatch.Groups[0].Value; return $"http://localhost:61187/two?sender={username}&link={url}&product={Name}"; })); MailMessage Msg = new MailMessage(); Msg.From = new MailAddress(txtUsername.Text); Msg.Subject = txtSubject.Text; Msg.Body = output.ToString(); Msg.IsBodyHtml = true; if (fuAttachment.HasFile) { string FileName = Path.GetFileName(fuAttachment.PostedFile.FileName); Msg.Attachments.Add(new Attachment(fuAttachment.PostedFile.InputStream, FileName)); } if (RadioButton1.Checked) { SqlCommand cmd = new SqlCommand(); cmd.CommandType = CommandType.Text; cmd.CommandText = "SELECT address FROM address1"; cmd.Connection = sql; DataTable dt = new DataTable(); SqlDataAdapter da = new SqlDataAdapter(cmd); sql.Open(); da.Fill(dt); sql.Close(); foreach (DataRow row in dt.Rows) { Msg.To.Add(row["address"].ToString()); } } else if (RadioButton2.Checked) { string connectionString = ""; if (FileUpload1.HasFile) { string fileName = Path.GetFileName(FileUpload1.PostedFile.FileName); string fileExtension = Path.GetExtension(FileUpload1.PostedFile.FileName); string fileLocation = Server.MapPath("~/App_Data/" + fileName); FileUpload1.SaveAs(fileLocation); if (fileExtension == ".xls") { connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileLocation + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=2\""; } else if (fileExtension == ".xlsx") { connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileLocation + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=2\""; } OleDbConnection con = new OleDbConnection(connectionString); OleDbCommand cmd = new OleDbCommand(); cmd.CommandType = System.Data.CommandType.Text; cmd.Connection = con; OleDbDataAdapter dAdapter = new OleDbDataAdapter(cmd); DataTable dt = new DataTable(); con.Open(); DataTable dtExcelSheetName = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); string getExcelSheetName = dtExcelSheetName.Rows[0]["Table_Name"].ToString(); cmd.CommandText = "SELECT address FROM [" + getExcelSheetName + "]"; dAdapter.SelectCommand = cmd; dAdapter.Fill(dt); con.Close(); foreach (DataRow row in dt.Rows) { Msg.To.Add(row["address"].ToString()); } } } else if (RadioButton3.Checked) { if (FileUpload2.HasFile) { string fileName = Path.GetFileName(FileUpload2.PostedFile.FileName); string fileLocation = Server.MapPath("~/App_Data/" + fileName); FileUpload2.SaveAs(fileLocation); StreamReader sr = new StreamReader(fileLocation); String line = sr.ReadToEnd(); string[] toAddressArray; toAddressArray = line.Split(new char[] { ' ' }); foreach (string a in toAddressArray) { Msg.To.Add(a); } } } SmtpClient smtp = new SmtpClient(); smtp.Host = "smtp.gmail.com"; smtp.Port = 587; smtp.UseDefaultCredentials = false; smtp.Credentials = new System.Net.NetworkCredential(txtUsername.Text, txtpwd.Text); smtp.EnableSsl = true; smtp.Send(Msg); Msg = null; ClientScript.RegisterStartupScript(GetType(), "alert", "alert('Email sent.');", true); } }
Теперь получатели из базы данных, excel или текстового файла имеют некоторые уникальные идентификаторы или идентификаторы. Когда получатель нажимает на любую ссылку(поскольку html-страница содержит много ссылок) на html-странице, которую я ему отправил, я заменяю эту ссылку ссылкой на мою страницу ... "http://localhost:61187/two и я передаю некоторые параметры на эту страницу в строке запроса следующим образом-
$"http://localhost:61187/two?sender={username}&link={url}&product={Name}";
Теперь, когда получатель нажимает на любую ссылку на html-странице, которую я ему отправил, я хочу получить его почтовый идентификатор. Я знаю, что это может быть достигнуто, если я проверю уникальный идентификатор получателя, чтобы получить его почтовый идентификатор. Где я застрял - это-1. Я не знаю, как динамически получить идентификатор электронной почты в строке запроса на основе уникального идентификатора 2. Как использовать цикл for для проверки получателей, которые перешли по ссылке
Что я уже пробовал:
Я знаю, что это может быть достигнуто, если я проверю уникальный идентификатор получателя, чтобы получить его почтовый идентификатор. Где я застрял - это-1. Я не знаю, как динамически получить идентификатор электронной почты в строке запроса на основе уникального идентификатора 2. Как использовать цикл for для проверки получателей, которые перешли по ссылке