Fórum ENVIO DE EMAIL COM MÚLTIPLAS LINHAS #9079

03/09/2009

0

Montei um Listbox, com o conteudo que quero enviar por email.
Como faço para colocar o conteúdo do Listbox no _MailMessage.Body já que são multiplas linhas. Grato
Sidney  
    protected void Enviar2()
    {
        MailMessage _MailMessage = new MailMessage();
        _MailMessage.Subject = "EMAIL GERENCIAL";
        _MailMessage.From = new MailAddress("sidney@terra.com.br");
        _MailMessage.Bcc.Clear();
        try
        {
                _MailMessage.To.Clear();
                _MailMessage.To.Add(ddlEmail.Text);
                _MailMessage.Body = ListBox1.Text;
           _MailMessage.IsBodyHtml = true;
                _MailMessage.Priority = MailPriority.Normal;
                SmtpClient _SmtpClient = new SmtpClient();
                _SmtpClient.Send(_MailMessage);
                WebMsgBox.Show("MENSAGEM ENVIADA");
        }
        catch (Exception Ex)
        {
            WebMsgBox.Show(Ex.Message);
        }
    }
Sidney Mendonça/

Sidney Mendonça/

Responder

Posts

03/09/2009

Fabio Mans

Sidnei para isso será necessário varrer todos os ítens do ListBox e para cada ítem enviar o email. Quando falamos em varrer temos duas opções o for ou foreach, no exemplo abaixo eu utilizei o foreach, perceba que eu recupero um ítem por vez, em seguida chamo o método de envio de e-mail passando o conteúdo como parâmetro.

aspx


<form id="form1" runat="server">
    <div>
   
        <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
        <asp:ListBox ID="ListBox1" runat="server">
            <asp:ListItem>teste1</asp:ListItem>
            <asp:ListItem>teste2</asp:ListItem>
            <asp:ListItem>teste3</asp:ListItem>
            <asp:ListItem>teste4</asp:ListItem>
        </asp:ListBox>
        <asp:TextBox ID="ddlEmail" runat="server"></asp:TextBox>
   
    </div>
    </form>


c#


public partial class Email : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {

        foreach (ListItem li in ListBox1.Items)
        {
            EnviaEmail(li.Value);
        }

       
    }

    private void EnviaEmail(string body)
    {
        MailMessage _MailMessage = new MailMessage();
        _MailMessage.Subject = "EMAIL GERENCIAL";
        _MailMessage.From = new MailAddress("sidney@terra.com.br");
        _MailMessage.Bcc.Clear();
        try
        {
            _MailMessage.To.Clear();
            _MailMessage.To.Add(ddlEmail.Text);
            _MailMessage.Body = body;
            _MailMessage.IsBodyHtml = true;
            _MailMessage.Priority = MailPriority.Normal;
            SmtpClient _SmtpClient = new SmtpClient();
            _SmtpClient.Send(_MailMessage);
            WebMsgBox.Show("MENSAGEM ENVIADA");
        }
        catch (Exception Ex)
        {
            WebMsgBox.Show(Ex.Message);
        }
    }
}

Se a sua opção for pelo for faça o seguinte.

for (int i = 0; i <= ListBox1.Items.Count - 1; i++)
        {
            EnviaEmail(ListBox1.Items[i].Value);
        }



Espero ter ajudado.


Fabio
Responder

Gostei + 0

03/09/2009

Sidney Mendonça/

Olá Fábio. Pelo que entendi nos seus exemplos, ele envia um email para cada linha do Listbox. O que preciso é enviar todo o contéudo do lisbox (todas as linhas) no mesmo email. O que não consegui foi colocar todas as linhas do listbox no body do email. Grato Sidney
Responder

Gostei + 0

03/09/2009

Fabio Mans

Mostra pra mim qual o conteúdo do List box que vou criar um exemplo para você.


Responder

Gostei + 0

04/09/2009

Sidney Mendonça/

Olá Fábio. O conteúdo do listbox1 é mais ou menos o seguinte. ------------------------------------------- Recebimento dia: 10.000,00 Pagamento do dia:12.000,00 Faturamento: 30.000,00 Compras: 35.000,00 A receber atual: 100.000,00 A pagar atual: 120.000,00 etc etc etc -------------------------------------------     No futuro vou transformar esse programa em serviço windows, e daí terei que mudar o listbox1 pode um stringlist. Se já quizer mandar exemplo para o stringlist, tudo bem.   grato   Sidney
Responder

Gostei + 0

08/09/2009

Fabio Mans

Faz o seguinte.


protected void Button1_Click(object sender, EventArgs e)
    {
        StringBuilder corpoEmail = new StringBuilder();
        for (int i = 0; i <= ListBox1.Items.Count - 1; i++)
            corpoEmail.AppendFormat("<br>", ListBox1.Items[i].Value);

        EnviaEmail(corpoEmail.ToString());

    }

Para cada linha do seu List você adiciona na String, no final envia o e-mail.

Espero ter ajudado.


Fabio
Responder

Gostei + 0

24/09/2009

Sidney Mendonça/

Chamado fechado.   Grato   Sidney
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar