Я буду кратким, и к сути, так как я поражен, я дошел до этой точки, но предисловие я довольно новичок во всем, что связано с кодированием в целом;большая часть моих знаний - из книг, Youtube и поисков Google.
Мой вопрос:
Как я могу получить от конечного пользователя возможность прикрепить документ (jpeg, png и т. Д.) И отправить его по электронной почте для конкретных продажПредставитель нашей компании, без загрузки этого документа на наш сервер, с помощью формы ASP?
Я создал форму, которую моя компания использует для получения базовой информации от посетителей.Теперь они хотели бы, чтобы с помощью этой формы также отправлялись прикрепленные к фотографиям их идентификаторы участников, но не сохранялись на сервере, а просто прикреплялись и отправлялись прямо на электронную почту торгового представителя.
Это то, что у меня есть, и я не уверен, что это лучший способ практики, но это то, что я собрал только из фрагментов кода, книг и т. Д. И т. Д. Я многое обрезал, чтобы несделать это очень долго и просто добраться до сути того, что я хотел бы сделать.Поэтому, если что-то не имеет смысла, дайте мне знать, что я определенно постараюсь уточнить это лучше, но я избавился от многих опций стилевого оформления и других полей, спрашивая адрес, номер телефона и т. Д., Например.
Default.aspx
<body>
<form id="form1" runat="server">
<table>
<tr>
<td> Full Name:
<asp:TextBox ID="Name" runat="server">
</asp:TextBox>
</td>
</tr>
</table>
<blockquote>
<p>
<asp:Button ID="Button1" runat="server" Text="Submit Member ID"
OnClick="Button1_Click" />
<asp:Button ID="Button2" runat="server" Text="Reset Form"
OnClick="Button2_Click" />
</p>
</blockquote>
</form>
</body>
</html>
И страница на бэкэнде, которая заставляет его работать, выглядит следующим образом:
Default.aspx.cs
using System;
using System.Net.Mail;
using System.Net;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
String strResult = "Member ID: Results \r\n \r\nResults: \r\n";
strResult += "Name: " + Name.Text + "\r\n";
MailAddress fromAddress = new MailAddress("mydomain@domain.com",
"Webmaster");
smtpClient.Host = "erelay.mydomain.com"; //"localhost";
smtpClient.Port = XX;
message.From = fromAddress;
message.To.Add("salesrep1@domain.com");
message.CC.Add("salesrepmanager@domain.com");
message.BccAdd("salesrepCEO@domain.com");
message.Subject = "Member ID";
message.IsBodyHtml = false;
message.Body = strResult;
smtpClient.Credentials = CredentialCache.DefaultNetworkCredentials;
smtpClient.Send(message);
Response.Redirect("thankyoupage@domain.com");
}
protected void Button2_Click(object sender, EventArgs e)
{
Name.Text="";
}
}
После этого единственное, что им хотелось бы, - это возможность для участников присоединять своих участников.Идентификатор, либо отсканированное фото, либо что у вас есть, чтобы отправить вместе с формой.Отсканированный идентификатор участника может быть в формате JPEG, PNG, PDF, что угодно, это на самом деле не имеет значения, единственное, чего они не хотят, это тот факт, что он будет загружен на наш сервер.
Я посмотрел в Интернете и просмотрел кучу примеров и фрагментов кода, которые другие опубликовали, и ближе всего к его работе я могу привести что-то вроде этого в части HTML, скажем, например, после запросаИмя:
<tr>
<td>
<asp:FileUpload ID="FileUpload" runat="server" />
</td>
</tr>
А затем в серверной части на aspx.cs, добавив его после message.body
if (FileUpload.HasFile)
{
message.Attachments.Add(new Attachment(FileUpload.PostedFile.InputStream,
FileUpload.FileName));
}
Я также видел другие фрагменты кода, которые кажутсявременно создать местоположение на сервере и затем самостоятельно удалить после его отправки?
Я также пытался сделать третью кнопку, подобную этой, в качестве приложения, но все сломалось.
protected void Button3_Click
Надеюсь, это сообщение имеет смысл.Я предложил использовать сторонний сайт, но компания настаивает на том, чтобы он был внутренним.Мое другое предложение в настоящее время показывает фактический адрес электронной почты в форме, куда отправлять документацию, но компания считает, что это слишком много шагов для конечного пользователя, и не все из них делают это / пропускают эту часть.
Сама форма отлично работает, она отправляет информацию представителю, которого я добавляю, а также всем, кто нуждается в CC'd или Bcc'd на нем.
Если кто-то может указать мнеправильное направление, я также был бы признателен за это.В Интернете я также прочитал много документации по ASP.NET, но это может немного расстроить кого-то нового.
Спасибо за ваше время.