webForumDet fria alternativet

Bifogade filer! fast från en user control.

.NET

2 svar · 286 visningar · startad av echoSwe

Medlem sedan nov. 20041 189 inlägg
Frågan#1

Jag försöker bifoga filer från ett mailformulär. Problemet är att när jag försöker med:

			//Adding attachments onto mail!
				MailAttachment MyAttachment = new MailAttachment(Server.MapPath("/upload/" + StrFileName));
				mail.Attachments.Add(MyAttachment);

Så vill inte ASP .Net göra det. Den viasar inget felmeddelande alls, utan struntar helt enkelt i att skicka mailet.
Om jag använder exakt samma kod i en .aspx fil så fungerar den jättebra, och filerna uppladdas och bifogas med mailet utan problem!

Det är konstigt, eftersom filerna laddas upp på servern, men sen så bifogas de inte till e-postmeddelandet.

Så... Inget fel på koden egentligen, eftersom den funkar i en .aspx fil, men om man, som jag, vill ha en user control som läggs till en placeholder för varje sida så blir det problem - trots att man kan skicka utan fil, så kan man inte det med fil...

Här är hela koden:

protected void SendBtn_Click (object sender,EventArgs E)
	{
		string strMeddelande;
		
		if(validate()) {
			lblMessage.Text = "";
			MailMessage mail = new MailMessage();
			mail.From = "\"" + senderName.Text + "\" <" + senderEmail.Text + ">";
			mail.To = setReciever();
			mail.Subject = subject.Text;
			mail.Body = "Namn: " + senderName.Text + "<br />"
			+ "Klass: " + senderClass.Text + "<br /><br />Meddelande:<hr />"
			+ body.Text + "<br /><hr />";
			
			
			mail.BodyFormat = MailFormat.Html;
			mail.BodyEncoding = System.Text.Encoding.GetEncoding("iso-8859-1");
				
			lblMessage.Text = "Just before upload passage.";
			//Upload file
			if (myFile.PostedFile !=null && myFile.PostedFile.FileName != "") //Checking for valid file
			{		
				lblMessage.Text = "There is a file here. Upload it!";

				// Since the PostedFile.FileNameFileName gives the entire path we use Substring function to rip of the filename alone.
				string StrFileName = myFile.PostedFile.FileName.Substring(myFile.PostedFile.FileName.LastIndexOf("\\") + 1) ;
				string StrFileType = myFile.PostedFile.ContentType;
				int IntFileSize = myFile.PostedFile.ContentLength;
				//Checking for the length of the file. If length is 0 then file is not uploaded.
				if (IntFileSize <=0) {	Response.Write("Uploading of file " + StrFileName + " failed."); }
				else
				{
					myFile.PostedFile.SaveAs(Server.MapPath("/upload/" + StrFileName));
					lblMessage.Text = "Din fil " + StrFileName + ", typ: " + StrFileType + " och " + IntFileSize.ToString() + " bytes stor uppladdades. ";
				}
			//Adding attachments onto mail!
				MailAttachment MyAttachment = new MailAttachment(Server.MapPath("/upload/" + StrFileName));
				mail.Attachments.Add(MyAttachment);
			}
			
			//Setting server and sending
			SmtpMail.SmtpServer = "xx.xxx";
			SmtpMail.Send(mail);
			
			//Resetting form
			senderName.Text = "";
			senderEmail.Text = "";
			senderClass.Text = "";
			subject.Text = "";
			body.Text = "";
		
			string ok = "<br />Du skrev in allt som beh&ouml;vdes och skickade till " + recieverDropDown.SelectedItem + ".";
			lblMessage.Text += ok;
		}
		else lblMessage.Text = "Doesn't validate.";
	}
Medlem sedan jan. 2004501 inlägg
#2

Asså har du kollat så att inte pathen är fel?
new MailAttachment(Server.MapPath("/upload/" + StrFileName)); kolla om myAttachment sätts så att den inte är null asså filen existerar inte.

Medlem sedan nov. 20041 189 inlägg
#3

Ja, i och med att filerna laddas upp på servern, så finns de ju.
Det som är konstigt är ju att de inte bifogas trots att de laddas upp. Sökvägen är rätt - jag har precis samma sökväg i .aspx filen i samma mapp, och där fungerar det ju hur bra som helst... Men du säger att jag ska kolla om den sätts. Hur?
Kan ingen testa om de får mailAttachment att fungera i en UC?

EDIT: Har testat lite till, och till min förvåning så kommer inte ALLA email fram, utan bara NÅGRA... Hehe... Underbart...

EDIT 2: Det måste vara fel på SMTP servern...

254 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)