Array
(
)

Verificação de email no asp

Delivery-ti
|
MVP
Pontos: 525
    28 jan 2014

Ola galera estou com um problema. Tendei fazer uma validação para saber se os campos estao em branco aparecer a mensagem (campos com * sao obrigatorio), caso ele preencha e clique em enviar o email sera enviado e aparece (email enviado com sucesso) se der algum erro quero apresentar a mensagem (erro ao tentar enviar email).
mas fiz isso com if e else , mas se o usuario clicar em enviar sem preencher os campos ele tenta enviar o email com os valores que coloquei na marca dagua, e ai chega na minha caisa como erro ao tentar enviar, mas vai assim mesmo, e tentei fazer um teste sem estar conectado na net e em vez de aparecer erro ao tentar enviar email, ele aparecesse email enviado com sucesso podem ajudar como resolver este teste de envio.
Obrigado Miller.

Henrique Gasparotto
|
MVP
    29 jan 2014

Opa Miller,
Esses teus if/else estão com sérios problemas. Dá uma olhada neles, ou posta aí pra te ajudarmos.

Chiodini
   - 29 jan 2014

Bom dia Cowboy-Woody,

Realmente esse tipo de tratamento usando If/Else,
deve ser feito de forma muito eficiente,
Porem precisamos de mais detalhes para te ajudar,

posta o codigo onde você faz as verificações,
podemos pensar em usar um ErroProvider para dar as mensagens de tratamento que voce deseja,

ficamos no aguardo.
att

Delivery-ti
|
MVP
Pontos: 525
    30 jan 2014

ta ai entao galera se puder ajudar, esta tudo dentro do evento click. Quero fazer a verificação caso o usuario clique em enviar sem preencher o formulario mas esta dando erro ele esta enviando com esses valores da mascara ai da erro pois o email nao existe. e fiz um teste para ver se da erro quando o usuario estiver sem internet ou outro motivo e ele mandou mensagem de sucesso mesmo assim. ta ai o codigo lagera valeu.

public partial class contato : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//marca dagua do formulario
txtNome.Attributes.Add("data-marcadagua", "Digite o nome completo");
txtEmailC.Attributes.Add("data-marcadagua", "seuemail@email.com.br");
txtEmpresa.Attributes.Add("data-marcadagua", "Informe a empresa");
txtFoneC.Attributes.Add("data-marcadagua", "(99) 99999 - 9999");
txtMess.Attributes.Add("data-marcadagua", "Informe sua questão...");
}

protected void btnEnviar_Click(object sender, ImageClickEventArgs e)
{
if (txtNome.Text == "Digite o nome completo" && txtEmailC.Text == "seuemail@email.com.br" && txtEmpresa.Text == "Informe a empresa" && txtFoneC.Text == "(99) 99999 - 9999" && txtMess.Text == "Informe sua questão...")
{
lblMes.Visible = true;
lblMes.Text = "Campos com * são obrigatórios!";
}
else
{
try
{
string servidor = ConfigurationManager.AppSettings["servidor"].ToString();
string emailContato = ConfigurationManager.AppSettings["emailContato"].ToString();
string senhaContato = ConfigurationManager.AppSettings["senha"].ToString();

StringBuilder corpo = new StringBuilder();
corpo.Append("Delivery - TI");
corpo.Append("<br />Dados enviados para contato:");
corpo.Append("<br />Nome: " + txtNome.Text);
corpo.Append("<br />Email: " + txtEmailC.Text);
corpo.Append("<br />Empresa: " + txtEmpresa.Text);
corpo.Append("<BR />Assunto: " + ddlAssunto.Text);
corpo.Append("<br />Telefone: " + txtFoneC.Text);
corpo.Append("<br />Menssagem: " + txtMess.Text);
corpo.Append("<br/><br/>");
corpo.Append("<br/> Nao responda este email, ele foi enviado altomáticamente.");
corpo.Append("<br/> Se quiser entrar em contato com a Delivery-TI acesse: www.deliveryti.com/contato");

//configuração do email
MailMessage mailMessage = new MailMessage();

mailMessage.From = new MailAddress(emailContato);
mailMessage.To.Add(txtEmailC.Text);
mailMessage.Priority = MailPriority.Normal;
mailMessage.Subject = "Email enviado por Delivery-TI";
mailMessage.IsBodyHtml = true;
mailMessage.Body = corpo.ToString();
mailMessage.SubjectEncoding = Encoding.GetEncoding("ISO-8859-1");
mailMessage.BodyEncoding = Encoding.GetEncoding("ISO-8859-1");

//configuração do servidor
SmtpClient objSMTP = new SmtpClient(servidor);

//smtp.Port = 587;
objSMTP.EnableSsl = true;
objSMTP.Credentials = new NetworkCredential(emailContato, senhaContato);
objSMTP.Send(mailMessage);

objSMTP.Host = "pop.gmail.com";
objSMTP.Credentials = new NetworkCredential("login", "senha");

//enviar email
objSMTP.Send(mailMessage);
lblMes.Visible = true;
lblMes.Text = "Email enviado com sucesso!";

}
catch { }

txtNome.Text = "";
txtEmailC.Text = "";
txtEmpresa.Text = "";
txtFoneC.Text = "";
txtMess.Text = "";
}
lblMes.Visible = true;
lblMes.Text = "Falha ao tentar enviar email!";

}
}

bem galera se puderem ajudar.
abraços Miller.

Delivery-ti
|
MVP
Pontos: 525
    03 fev 2014

ola e ai galera alguem pode da uma ajuda. Obrigado.

Chiodini
   - 03 fev 2014

Não utiliza o &&

pois para ele entrar vai ter que todos eles estarem com os valores padrões.
utilize o OR
assim sera melhor confirmar se algum deles esta nulo

att,

Henrique Gasparotto
|
MVP
    03 fev 2014

Olá Miller,
Além do que o Leandro comentou, teu catch não está pegando exceção nenhuma, além de não ter nenhum código.
Algo como:
#Código

try{ //Código try }
catch (ExceçãoFaltadeInternet e) { //Código falta de internet }
catch (Exception e) { //Código erro geral }

seria correto. Só tem que ver qual a exceção que ele levanta quando falta internet.

Delivery-ti
|
MVP
Pontos: 525
    03 fev 2014

e existe agum codigo que eu possa verificar se ha falta de internet pra tratar o erro?

Delivery-ti
|
MVP
Pontos: 525
    03 fev 2014

ola olha so como eu fiz mas deu.... quase certo apenas a mensagem de erro nao funciona e tentei fazer um envio do formulario para o usuario tambem e adicionei o email que ele preenche no formulario ele enviou apenas pra mim e no outro que eu coloquei ele nao envia como fazer para enviar para os dois?

olha o codigo:

protected void btnEnviar_Click(object sender, ImageClickEventArgs e)
{
if (txtNome.Text == "Digite o nome completo" || txtEmailC.Text == "seuemail@email.com.br" || txtFoneC.Text == "(99) 99999 - 9999")
{
lblMes.Visible = true;
lblMes.Text = "Campos com * são obrigatórios!";

txtNome.Focus();
}
else
{
try
{
string servidor = ConfigurationManager.AppSettings["servidor"].ToString();
string emailContato = ConfigurationManager.AppSettings["emailContato"].ToString();
string senhaContato = ConfigurationManager.AppSettings["senha"].ToString();

StringBuilder corpo = new StringBuilder();
corpo.Append("Delivery - TI");
corpo.Append("<br />Dados enviados para contato:");
corpo.Append("<br />Nome: " + txtNome.Text);
corpo.Append("<br />Email: " + txtEmailC.Text);
corpo.Append("<br />Empresa: " + txtEmpresa.Text);
corpo.Append("<BR />Assunto: " + ddlAssunto.Text);
corpo.Append("<br />Telefone: " + txtFoneC.Text);
corpo.Append("<br />Menssagem: " + txtMess.Text);

//configuração do email
MailMessage mailMessage = new MailMessage();
mailMessage.From = new MailAddress(emailContato, txtEmailC.Text); ///////////////aqui galera tentei fazer com que ele enviasse este email para mim e para o usuario . mas deu erro como devo fazer?

mailMessage.To.Add(txtEmailC.Text);
mailMessage.Priority = MailPriority.Normal;
mailMessage.Subject = "Email enviado por Delivery-TI";
mailMessage.IsBodyHtml = true;
mailMessage.Body = corpo.ToString();
mailMessage.SubjectEncoding = Encoding.GetEncoding("ISO-8859-1");
mailMessage.BodyEncoding = Encoding.GetEncoding("ISO-8859-1");

//configuração do servidor
SmtpClient objSMTP = new SmtpClient(servidor);

//smtp.Port = 587;
objSMTP.EnableSsl = true;
objSMTP.Credentials = new NetworkCredential(emailContato, senhaContato);
objSMTP.Send(mailMessage);

objSMTP.Host = "pop.gmail.com";
objSMTP.Credentials = new NetworkCredential("login", "senha");

//enviar email
objSMTP.Send(mailMessage);
lblMes.Visible = true;

txtNome.Text = "";
txtEmailC.Text = "";
txtEmpresa.Text = "";
txtFoneC.Text = "";
txtMess.Text = "";

lblMes.Text = "E-mail enviado com sucesso!"; //////// mensagem caso de tudo certo

}
catch(Exception) {

txtNome.Text = "";
txtEmailC.Text = "";
txtEmpresa.Text = "";
txtFoneC.Text = "";
txtMess.Text = "";

lblMes.Visible = true;
lblMes.Text = "Erro. Verifique sua conexão, ou tente novamente!"; /////////////// aqui galera mesmo enviando o email ele mostra esta mensagem
}

}
}

Henrique Gasparotto
|
MVP
    04 fev 2014

Quanto ao envio, não conheço muito bem essa classe MailMessage, mas ela deve ter algum método/propriedade para definir o CC, se você deseja enviar para mais de uma pessoa. Algo como:
#Código

mailMessage.CC.Add(email);
// OU
mailMessage.To.Add(email1);
mailMessage.To.Add(email2);

No mais, creio que está tudo certo. A questão do erro você consegue enxergar melhor o que está acontecendo se der um catch(Exception e), por exemplo, e pegar a mensagem que a exceção gera com e.message().

Delivery-ti
|
MVP
Pontos: 525
    05 fev 2014

verdade cara esqueci disso tem sim o 'cc' no asp, eu que nem lembrava mais e o erro vou ver como voce falou valeu cara.

Delivery-ti
|
MVP
Pontos: 525
    06 fev 2014

galera valeu pela ajuda agora ja deu tudo certo a nao ser que precise de mais algo mas ai pergunto em outro post. Este ja ajudou muito valeu.

ADM pode finalizar este também muito obrigado.

Abraços MIller.