こんにちは、私は自分のコードの何が問題なのかを理解するのにかなり近づいていると思いますが、誰かが私を助けてくれるか、正しい方向に向けてくれることを望んでいました. プログラムを実行でき、ユーザーがファイルをアップロードしようとしているページで、ファイルを選択するオプションが表示されます。しかし、送信を押すと、他の情報が送信されますが、ファイルは届きません。これは、ファイルをメールに送信するときにファイルを一時的に保存する場所がわからないためだと思います。現時点での私のコードは次のとおりです。
また、このコードの目的は、ユーザーがコメントしたり、スクリーン ショットを追加したりできる、私の Web サイトのコメント/リクエスト ページです。
private string SendMessage(string strTo, string strFrom, string strSubject, string strMessage, string strAttachment, string strBCC)
{
try
{
MailMessage mailMsg;
string strEmail = "";
string strSmtpClient = ConfigurationManager.AppSettings["SmtpClient"];
string[] arrEmailAddress = strTo.Split(';');
for (int intCtr = 0; intCtr < arrEmailAddress.Length; intCtr++)
{
strEmail = "";
if (arrEmailAddress[intCtr].ToString().Trim() != "")
{
strEmail = arrEmailAddress[intCtr].ToString().Trim();
mailMsg = new MailMessage(strFrom, strEmail, strSubject, strMessage);
mailMsg.IsBodyHtml = true;
if (!strBCC.Trim().Equals(string.Empty))
mailMsg.Bcc.Add(strBCC);
SmtpClient smtpClient = new SmtpClient(strSmtpClient);
smtpClient.UseDefaultCredentials = true;
smtpClient.Port = 25;
smtpClient.Send(mailMsg);
mailMsg.Dispose();
}
}
return "Message sent to " + strTo + " at " + DateTime.Now.ToString() + ".";
}
catch (Exception objEx)
{
return objEx.Message.ToString();
}
string strUpLoadDateTime = System.DateTime.Now.ToString("yyyyMMddHHmmss");
string strFileName1 = string.Empty;
if ((File1.PostedFile != null) && (File1.PostedFile.ContentLength > 0))
{
string strUploadFileName1 = File1.PostedFile.FileName;
strFileName1 = strUpLoadDateTime + "." + Path.GetFileNameWithoutExtension(strUploadFileName1) + Path.GetExtension(strUploadFileName1);
strFileName1 = strFileName1.Replace("'", "");
string strSaveLocation = Server.MapPath("") + "\\" + strFileName1;
File1.PostedFile.SaveAs(strSaveLocation);
txtComments.Text = "The file has been uploaded";
}
私の質問は、このコードのどこにファイルを保存する場所をどこに置くべきかということです。
コードの以下の部分は、送信時に電子メールをフォーマットするために使用しているものです。メールで送信する内容を選択します。
protected void Submit_Click1(object sender, EventArgs e)
{
try
{
string dandt = System.DateTime.Now.ToString("yyyyMMddHHmmss");
string strMessage = "Bug Name: " + txtBugName.Text.Trim() + "<br/>" +
"Module Name: " + ddlModule.SelectedValue + "<br/>" +
"Page Name: " + ddlPage.SelectedValue + "<br/>" +
"Description: " + txtComments.Text.Trim() + "<br/>" +
File1.f + "<br/>" +
"Email is" + " " + txtemail.Text.Trim() + "<br/>" +
"The request was sent at" + dandt;
SendMessage(ConfigurationManager.AppSettings["EmailAddrTo"],
ConfigurationManager.AppSettings["EmailAddrFrom"],
txtBugName.Text.Trim(),
strMessage, "", "");
}
catch
{
}
}
何らかの理由で、送信を押してもメールが送信されません。また、メールが送信された日時をメールに入れる方法を理解しようとしていました。明らかに私のメールにはこの情報が含まれていますが、何らかの理由でメールが遅れた場合に備えて、ユーザーが送信ボタンを押した日時を知りたいです。コードのこの部分で File.F と書かれている場所は、添付ファイルを電子メールに送信する方法を見つけようとしていた場所ですが、コードでどの構文を使用する必要があるかわかりません。