ENVIO DE EMAIL COM MÚLTIPLAS LINHAS
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);
}
}
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/
Curtidas 0
Respostas
Fabio Mans
03/09/2009
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
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
GOSTEI 0
Sidney Mendonça/
03/09/2009
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
GOSTEI 0
Fabio Mans
03/09/2009
Mostra pra mim qual o conteúdo do List box que vou criar um exemplo para você.
GOSTEI 0
Sidney Mendonça/
03/09/2009
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
GOSTEI 0
Fabio Mans
03/09/2009
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
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
GOSTEI 0
Sidney Mendonça/
03/09/2009
Chamado fechado.
Grato
Sidney
GOSTEI 0