2009-09-09 11 views
0

J'ai une page qui a le contrôle fileupload, sur la soumission du formulaire, lorsque le contrôle fileupload a un fichier, le fichier est envoyé par pièce jointe dans un courrier et fonctionne absulutly bien, mais quand le contrôle fileupload n'a pas de fichier, le fichier ATT00006.dat est automatiquement envoyé par e-mail.ATT00006.dat fichier attaché automatiquement dans la pièce jointe

URL de référence: http://nextech.pk/Enquiry.aspx?Enq=cu

Merci d'avance pour toute aide

Modifier - Code:

hpf = fup1.PostedFile; 
    String toEmail = "[email protected]"; 
    String fromEmail = "[email protected]"; 
    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); 

Répondre

0

Il s'agit d'une mauvaise correspondance dans le type de pièce jointe que le système ne comprend pas. S'il vous plaît poster votre code et ce que vous faites quand il n'y a pas de fichier en pièce jointe.

+0

J'ai posté du code, s'il vous plaît vérifier, merci –

+0

Quand il n'y a pas de fichier joint. Voyez-vous le texte "Ce message contient également une pièce jointe" avec la pièce jointe ATT00006.dat. – Shoban

+0

oui .. c'est le texte .... Cet e-mail contient également une pièce jointe: -() –

0

Je pense que le serveur de messagerie que vous utilisez (ou un logiciel antivirus utilisé par le serveur de messagerie) ajoute automatiquement ce fichier.

Le fichier en question contient-il quelque chose ou est-il vide?

+0

mais quand nous joindre un fichier, puis ce ATT00006.dat n'est pas attaché dans l'email? –

+0

ce que signifie vérifier cette URL http://nextech.pk/Enquiry.aspx?Enq=cu si l'utilisateur télécharge le fichier dans le contrôle fileupload alors le fichier sera joint sinon vide –

+0

Désolé, ce que je veux dire c'est que le fichier ATT00006.dat a n'importe quel contenu? – Cocowalla

2

Je ne sais pas si vous avez déjà eu une réponse à cela, mais j'ai récemment étudié le problème en détail. Le problème se produit car vous n'avez pas fourni de nom explicite pour la pièce jointe. ASP.NET sera toujours attaché en tant que .DAT sauf si le nom est explicitement défini.

Le problème est que les gens supposent que ASP.NET utilisera le nom de fichier comme nom de pièce jointe, ce qui n'arrive pas!

Dans votre code, vous devez créer une instance de la pièce jointe, puis indiquez le nom en utilisant explicitement la propriété 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) 

Une explication complète of ASP.NET attaching .DAT files is available here

+1

Cela devrait être la réponse réelle, merci pour votre contribution mate :) – JSancho

+0

Merci pour vos commentaires – EvilDr

Questions connexes