Прикрепить ссылку из предыдущего письма C# - PullRequest
0 голосов
/ 02 апреля 2020

Мне нужно знать, как сослаться на предыдущее письмо.

У меня есть следующий сценарий:

Клиент регистрирует запрос и затем отправляет электронное письмо, указывающее, что оно будет выполнено. .

Затем из другого варианта пользователь назначает запрос другому пользователю, чтобы он мог его обслуживать. Затем пользователю отправляется электронное письмо, которое должно присутствовать на запросе, но я хочу добавить ссылку, которая перенаправляет на ранее зарегистрированное электронное письмо (которое было создано в запросе клиента).

В настоящее время компания использует внешний вид. И этот код используется для отправки электронных писем.

    public void EnviarCorreo(string lstDestinatarios, DataTable dtCorreos, string strAsunto, string strMensaje, string strNombreCuenta, DataTable dtArchivos, string correoEnvio, string claveEnvio, bool copiaOculta, int puerto, ref string mensajeError)
{
    MailMessage Mail = new MailMessage();
    SmtpClient Smtp = new SmtpClient();
    string[] cuenta;
    Attachment data;
    DataTable dtCredenciales;
    string lstConCopia;
    MemoryStream memStream;
    try
    {
        if (dtCorreos.Rows.Count == 0)
            lstConCopia = "";
        else
            lstConCopia = string.Join(",", (from row in dtCorreos
                                            select System.Convert.ToString(row("email"))).ToArray);

        solicitudSoporteTecnicoADOBj = new SolicitudSoporteTecnicoAD(mCadenaConexion);

        dtCredenciales = this.solicitudSoporteTecnicoADOBj.ObtenerCredencialesCorreo;
        if (dtCredenciales.Rows.Count == 0)
            throw new SiempresoftException("No existen credenciales.");
        cuenta = correoEnvio.Split("@");
        if (cuenta.Length > 1)
            dtCredenciales.Rows(0).Item("host") = cuenta[1];
        if (correoEnvio.Trim() != "")
            dtCredenciales.Rows(0).Item("email") = correoEnvio;
        foreach (string strMail in lstDestinatarios.Split(";"))
        {
            if (strMail.Trim() != "")
                Mail.To.Add(strMail);
        }
        foreach (string strMail in lstConCopia.Split(";"))
        {
            if (strMail.Trim() != "")
                Mail.CC.Add(strMail);
        }
        Mail.From = new MailAddress(dtCredenciales.Rows(0).Item("email").ToString, "Soporte ERP - Siempresoft", System.Text.Encoding.UTF8);
        Mail.Subject = strAsunto;
        Mail.SubjectEncoding = System.Text.Encoding.UTF8;
        Mail.IsBodyHtml = true;


        Mail.Body = strMensaje;

        Mail.BodyEncoding = System.Text.Encoding.UTF8;
        if (cuenta.Length > 1)
            Smtp.Credentials = new System.Net.NetworkCredential(cuenta[0], correoEnvio);
        else
            Smtp.Credentials = new System.Net.NetworkCredential(dtCredenciales.Rows(0).Item("email").ToString, dtCredenciales.Rows(0).Item("clave").ToString);
        Smtp.Port = puerto;
        Smtp.Host = dtCredenciales.Rows(0).Item("host");
        Smtp.EnableSsl = false;
        if (!dtArchivos == null)
        {
            foreach (DataRow drfila in dtArchivos.Rows)
            {
                memStream = new MemoryStream();
                if (!drfila.Item("archivo") == null)
                {
                    memStream.Write((byte[])drfila.Item("archivo"), 0, (byte[])drfila.Item("archivo").Length);
                    memStream.Seek(0, SeekOrigin.Begin);
                    data = new Attachment(memStream, drfila.Item("nombrearchivo").ToString);
                    Mail.Attachments.Add(data);
                }
            }
        }
        Smtp.Send(Mail);
        Mail.Dispose();
    }
    catch (Exception ex)
    {
        System.IO.StreamWriter file;
        file = My.Computer.FileSystem.OpenTextFileWriter("errorcorreo.txt", true);
        file.WriteLine(ex.Message);
        file.Close();
        if (!Information.IsNothing(mensajeError))
            mensajeError = ex.Message;
        Mail.Dispose();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...