2009-05-14 5 views
0

메일 첨부 파일에 문제가 있습니다. 파일 업로드 컨트롤을 사용하여 로컬 컴퓨터의 파일 을 가져옵니다.메일 첨부 문제

그것은 "잘못된 메일 첨부 파일"오류를주는 모든 폴더에서 파일을 첨부하는 동안 적절한 경로를 제공하고 있습니다.

다음은

protected void sndmail_Click(object sender, EventArgs e) 
    { 
     objmail = new MailMessage(); 
     objmail.From = txt_sender.Text; 
     objmail.To = txt_recipient.Text; 
     objmail.Cc = txt_cc.Text; 
     objmail.BodyFormat = MailFormat.Text; 
     objmail.Priority = MailPriority.High; 
     objmail.Subject = txt_sub.Text; 
     objmail.Body = txt_body.Text; 
     SmtpMail.SmtpServer = "localhost"; 
     SmtpMail.Send(objmail); 
     Response.Write("Mail send successfully..."); 

    } 


    protected void attch_Click(object sender, EventArgs e) 
    { 
     string mypath = System.IO.Path.GetFullPath(FileUpload1.FileName); 
     MessageBox.Show(mypath); 
     MailAttachment attch = new MailAttachment(mypath); 

     objmail.Attachments.Add(attch); 
    } 

당신은 내가이 오류를보고 있어요 왜 내가 운동 도와 드릴까요 .. 코드입니다? 메일 메시지를 생성하는 코드가 서버에서 실행되는 동안

+0

윌이 코드 지금이 줄을 ..... 사용하여 작업 파일 ....

objmail.Attachments.Add(new MailAttachment(FileUpload1.PostedFile.FileName)); objmail.From = txt_sender.Text; objmail.To = txt_recipient.Text; objmail.BodyFormat = MailFormat.Text; objmail.Priority = MailPriority.High; objmail.Subject = txt_sub.Text; objmail.Body = txt_body.Text; SmtpMail.SmtpServer = ""; SmtpMail.Send(objmail); Response.Write("Mail send successfully..."); 

전혀 작동합니까? 첨부 버튼의 클릭 이벤트에서 전자 메일 개체를 참조하지만 클릭 이벤트 보내기에서 새 전자 메일을 만들고 그 전자 메일을 보내십시오. –

답변

0

objmail = new MailMessage(); (= ""SmtpMail.SmtpServer) alll 회신

고맙습니다 ...

1

는 FileUpload 컨트롤의 FileName 속성은, 당신에게 클라이언트에있는 파일의 이름을 제공 할 것입니다. 먼저 파일을 서버에 저장 한 다음 메일 첨부를 작성할 때 해당 경로를 참조해야합니다.

string fileNameOnServer = Path.Combine("<some writeable path on your server>", FileUpload1.FileName); 
FileUpload1.SaveAs(fileNameOnServer); 

// now you can user fileNameOnServer to attach the file to a mail message 
objMail.Attachments.Add(new Attachment(fileNameOnServer)); 
+0

해당 작업이 없습니다 .. –

1

objmail.Attachments.Add(attch); 코드가 실행되면, objmail 변수가 인스턴스화되지 않고, 따라서 오류를 얻고있다.

코드 행이 objmail = new MailMessage();

sndmail_Click 방식으로 작성해야하는 것은 attch 로컬 변수가 attch_Click 방법이며, sndmail_Click 방법에 액세스 할 수 없습니다 것이라는 사실을 염두하시기 바랍니다. 두 변수 모두에서이 변수를 사용할 수있게해야하므로 objmail 변수를 선언 한 위치와 함께 선언하십시오.

편집는 : 프레드릭는 그의 대답에 설명 된 것처럼

그러나 objmail.Attachments 컬렉션에 저장된 파일을 추가 sndmail_Click 방법 attch_Click 방법과에서 서버에 파일을 저장해야합니다.

+0

여전히 동일한 오류가 발생합니다. –

+0

@Aarsh - 프레드릭과 내 대답을 결합해야합니다. 서버의 파일을 attch_Click 메서드 (Fred가 올바르게 언급했듯이)와 sndmail_Click에 저장하고 SmtpMail.Send (objmail)를 호출하기 전에 저장된 파일을 선택하여 objmail.Attachments 컬렉션에 추가해야합니다. –

관련 문제