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.
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övdes och skickade till " + recieverDropDown.SelectedItem + ".";
lblMessage.Text += ok;
}
else lblMessage.Text = "Doesn't validate.";
}
