私は[WebMethod] Sendemailを持っています。これはうまく動作しますが、今は添付ファイルを送信するためにアップグレードするものです。私はファイルアップロードを使用しています。これは私のメソッドコールです。 「WebTestServiceApp.localhost.Service1.Sendemail(文字列のための最良のオーバーロードされたメソッドの試合*FileUploadコンテンツを[WebMethod]に渡す正しい方法は?
* 1):私のCALL文は青などの2つのエラー与えられた表情に下線が引かれている
lblEmailSent.Text = Send.Sendemail(txtTo.Text, txtSubject.Text, txtbody.Text, FileUpload1.PostedFile.FileName, FileUpload1.FileContent);
、文字列、 文字列、文字列、WebTestServiceApp.localhost.Streamは) ':から変換できません
* 2) *引数5いくつかの無効な 引数があります' WebTestServiceApp.localhost.Stream '
FileUpload1.PostedFile.FileNameがString FileUpload1.FileContentとして渡される」から' System.IO.Streamをストリームとして渡され
これが今、私の[WebMethod属性]ですあなたは私が見ることができるすべてを見ることができます、私は何か間違っていることはできませんが、FileUpload1.FileContentがStreamとして渡されるべきかどうかはわかりません。
[WebMethod]
public string Sendemail(String inValueTo, String inValueSub, String inValueBody, String inValueAttachmentPostedfile, Stream inValueAttachemtnFileContent) //, String inValueAttachmentPostedfile, Stream inValueAttachemtnFileContent
{
try
{
String valueTo = inValueTo;
String valueSub = inValueSub;
String valueBody = inValueBody;
String valueAttachmentPostedfile = inValueAttachmentPostedfile; //FileUpload1.PostedFile.FileName
Stream valueAttachmentFileContent = inValueAttachemtnFileContent; //FileUpload1.FileContent.fileName
System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage(); // Creating new message.
message.To.Add(valueTo);
message.Subject = valueSub;
message.From = new System.Net.Mail.MailAddress("[email protected]");
message.Body = valueBody;
message.IsBodyHtml = true;
string fileName = Path.GetFileName(valueAttachmentPostedfile); // Get attachment file
Attachment myAttachment =
new Attachment(valueAttachmentFileContent, fileName);
if (fileName != "")
{
message.Attachments.Add(myAttachment); // Send attachment
}
System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient("smtp.gmail.com"); //Properties.Settings.Default.MailSMTPServer
smtp.Port = 587;
smtp.EnableSsl = true;
smtp.UseDefaultCredentials = false;
NetworkCredential netC = new NetworkCredential(Properties.Settings.Default.username, Properties.Settings.Default.password); // Useing Projects defult settings.
smtp.Credentials = netC;
smtp.Send(message);
return "Message has been sent";
}
catch (Exception)
{
return "Message faild to send" ;
}
}