Pergunta

Eu tenho uma página que possui controle de fileupload, no envio do formulário, quando o controle do arquivo FileUpload possui arquivo, o arquivo é enviado por anexo em um e -mail e funcionando absulutamente bem, mas quando o controle do FileUpload não possui arquivo, Att00006.dat O arquivo é enviado automaticamente via anexo de email.

URL de referência: http://nextech.pk/enquiry.aspx?enq=cu

Avide obrigado por qualquer ajuda

Editar - código:

 hpf = fup1.PostedFile;
    String toEmail = "test@hotmail.com";
    String fromEmail = "mailer@hotmail.com";
    MailMessage objMail = new MailMessage(fromEmail, toEmail);
    objMail.IsBodyHtml = true;

    StringBuilder MailBody = new StringBuilder();

    MailBody.Append("<html><head></head><body> <br>");
    MailBody.Append("<br>" + "An enquiry is filed <br><br>");
    MailBody.Append("<strong><u>Enquirer Information</u></strong>" + "<br><br>");
    MailBody.Append("<strong>Contact Name:</strong>&#09;" + txtFirstName.Text + "<br>");
    MailBody.Append("<strong>Email:</strong>&#09;&#09;&#09; " + txtEmail.Text + "<br>");
    MailBody.Append("<strong>Institute:</strong>&#09;&#09; " + txtInstitute.Text + "<br>");
    MailBody.Append("<strong>Phone #:</strong>&#09;&#09; " + txtPhone.Text + "<br>");

    MailBody.Append("<br><strong>Description:</strong><br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; " + txtEnquiry.Text + "<br>");

    if (hpf != null)
    {
        MailBody.Append("<br>" + "This email also contains an attachment:- <Strong>(" + hpf.FileName + ")</Strong><br>");
    }

    MailBody.Append("</body></html>");
    objMail.Body = MailBody.ToString();
    if (hpf != null)
    {
        System.IO.Stream inputStream = hpf.InputStream;
        String fileName = hpf.FileName;
        Attachment attach = new Attachment(inputStream, fileName);

        objMail.Attachments.Add(attach);
    }
    SmtpClient SmtpClnt = new SmtpClient();
    SmtpClnt.Send(objMail);
Foi útil?

Solução

É uma correspondência incorreta no tipo de anexo que o sistema não entende. Por favor, poste seu código e o que você faz quando não houver arquivo como anexo.

Outras dicas

Não sei se você já recebeu uma resposta para isso, mas recentemente estudei o problema em detalhes. O problema ocorre porque você não forneceu um nome explícito para o anexo. O ASP.NET sempre anexará como .dat, a menos que o nome seja explicitamente definido.

O problema é que as pessoas assumem que o ASP.NET usará o nome do arquivo como o nome do anexo, o que não acontece!

No seu código, você deve criar uma instância do anexo e fornecer o nome explicitamente usando a propriedade FileUpload.FileName:

Dim att As New System.Net.Mail.Attachment(fu.PostedFile.InputStream, System.Net.Mime.MediaTypeNames.Application.Octet) ' use Octet for binary files '
att.Name = fu.FileName ' get the file name and type automatically '
mm.Attachments.Add(att)

Uma explicação completa do ASP.NET Anexar arquivos .dat está disponível aqui

Eu acho que o servidor de correio que você está usando (ou software antivírus usado pelo servidor de correio) está adicionando automaticamente esse arquivo.

O arquivo em questão contém alguma coisa ou está vazio?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top