none
C# - Enviar E-mail com anexo. RRS feed

  • Pergunta

  • Boa tarde!

    Estou criando um projeto para enviar e-mail com anexo.

    Estou tendo problemas, pois criei dois campos de anexo e gostaria que o segundo anexo não fosse obrigatório ser preenchido para enviar o e-mail. O que devo mudar em meu código?

    Segue meu Código: (Classe)

    public object email (string para, string assunto, string mensagem, string anexo1, string anexo2)
            {
                erro = false;
                SmtpClient smtp = new SmtpClient();
                MailMessage mail = new MailMessage();
                Attachment anexar = new Attachment(anexo1);
                mail.Attachments.Add(anexar);
                Attachment anexar2 = new Attachment(anexo2);
                mail.Attachments.Add(anexar2);

                smtp.Host = "smtp.live.com";
                smtp.Port = 587;

                smtp.EnableSsl = true;

                smtp.UseDefaultCredentials = false;

                smtp.Credentials = new System.Net.NetworkCredential("meuemail@email.com", "senha");
                mail.From = new MailAddress("meuemail@email.com");

                if(!string.IsNullOrWhiteSpace(para))
                {
                    mail.To.Add(new MailAddress(para));
                    erro = true;
                }
                else
                {
                    erro = false;
                }

                mail.Subject = assunto;
                mail.Body = mensagem;

                smtp.Send(mail);
                return erro;
            }
        }
    }


    • Editado RicBC domingo, 7 de agosto de 2016 19:44
    domingo, 7 de agosto de 2016 19:42

Respostas

  • Olá,

    Você poderia fazer uma verificação no início do seu método, verificando os campos obrigatórios:

             public object email (string para, string assunto, string mensagem, string anexo1, string anexo2)
            {
              erro = false;
              if(!string.IsNullOrWhiteSpace(para) && !string.IsNullOrWhiteSpace(assunto) && !string.IsNullOrWhiteSpace(mensagem) && !string.IsNullOrWhiteSpace(anexo1))
              {
                SmtpClient smtp = new SmtpClient();
                MailMessage mail = new MailMessage();
                Attachment anexar = new Attachment(anexo1);
                mail.Attachments.Add(anexar);
                Attachment anexar2 = new Attachment(anexo2);
                mail.Attachments.Add(anexar2);
    
                smtp.Host = "smtp.live.com";
                smtp.Port = 587;
    
                smtp.EnableSsl = true;
    
                smtp.UseDefaultCredentials = false;
    
                smtp.Credentials = new System.Net.NetworkCredential("meuemail@email.com", "senha");
                mail.From = new MailAddress("meuemail@email.com");
                mail.To.Add(new MailAddress(para));
                mail.Subject = assunto;
                mail.Body = mensagem;
    
                smtp.Send(mail);
              }
              else
                erro = true;
    
              return erro;
            }
    Valeu!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MSP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco



    segunda-feira, 8 de agosto de 2016 10:55