Отправка файла с использованием электронной почты

advertisement
Отправка файла с
использованием электронной
почты
Выбор файла на стороне клиента
Просмотр HTML-страницы в IE
Создание HTML-файла в среде MS
Studio.NET
HTML-файл
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html> <head> <title></title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET
7.1">
<meta name="ProgId" content="VisualStudio.HTML">
<meta name="Originator" content="Microsoft Visual Studio .NET 7.1">
</head><body>
<form method=post action="WebForm4.aspx"
enctype=multipart/form-data>
<INPUT id="File1" type="file" name="File1"><br>
<INPUT id="Submit1" type="submit" value="Submit"
name="Submit1">
</form>
</body></html>
Описание переменных
public class WebForm4 : System.Web.UI.Page
{
HttpPostedFile file;
FileStream fin;
String str,s;
Byte[] bytes =new Byte[500];
int i;
…
Передача файла
Для передачи файла со стороны клиента используем
объект Request, а именно его свойство:
 Files-свойство содержит коллекцию файлов,
переданных пользователем на сервер. Свойство
имеет смысл обрабатывать только в том случае,
если указан MIME-тип multipart/form-data.
Передача файла
private void Page_Load(object sender,
System.EventArgs e)
{
this.Response.Write(this.Request.Params["File1"]);
foreach(string f in Request.Files.AllKeys)
{
try
{
file = Request.Files[f];
}
catch(Exception ex)
{
this.Response.Write("<br>NO<br>");
}
Сохранение файла на сервере
try
{
file.SaveAs("\\\\adm-119-1\\internet\\test.txt");
this.Response.Write("<br>Файл с именем
"+file.FileName.ToString()+"успешно передан на
сервер");
}
catch(Exception ex)
{
this.Response.Write("<br>NO
COPY<br>"+file.FileName.ToString()+ex.Message);
}
Открытие файла
try
{
fin= new FileStream("\\\\adm-1191\\internet\\test.txt",FileMode.Open);
this.Response.Write(" Файл открыт");
}
catch(Exception ex)
{
this.Response.Write(ex.Message+" Невозможно
открыть файл");
}
Чтение файла по строкам
StreamReader fstr_in=new StreamReader(fin);
while ((s=fstr_in.ReadLine())!=null)
{
str=str+s;
}
this.Response.Write("прочитано="+str);
this.Session["str"]=str;
fstr_in.Close();
fin.Close();
Чтение файла по байтам
do
{
try
{
i=fin.ReadByte();
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
Чтение файла по байтам
if (i!=-1)
{
Console.Write((char)i);
}
} while(i!=-1);
fin.Close();
Создание почтового соединения



Весьма часто разработчику Web-приложений
приходится использовать в своих проектах
функцию автоматической отправки электронной
почты.
Чаще всего электронные письма, которые
создаются и отправляются автоматически, без
участия администраторов, содержат какие-либо
уведомления.
Так или иначе, практически ни один из серьезных
проектов не обходится без использования
электронной почты, и, следовательно, необходимо
рассмотреть механизм ее использования в работе
Web-приложений.
Создание почтового соединения




Для создания почтового соединения применяется
класс SmtpMail, располагающийся в пространстве
имен System.Web.Mail.
Основное его свойство SmtpServer типа String
содержит адрес почтового сервера, на который
будет отсылаться сообщение.
А метод Send отсылает письмо на этот сервер.
В качестве параметра этому методу передается
значение типа MailMessage. Именно этот тип
полностью определяет отсылаемое сообщение.
Свойства отсылаемого сообщения
MailMessage


Attachments – свойство задает список файлов,
присоединены к письму. Свойство имеет значение
типа IList. Этот тип является коллекцией
наименований файлов.
Bcc – свойство типа String. Его значением является
список адресов электронной почты, по которым
будет отправлено электронное письмо. Следует,
однако, отметить, что в этом свойстве задаются
адреса, водящие в список BCC (Blind Carbon Copy),
т.е. получатели, чьи адреса указаны в полях To
(кому) и Copy (копия), не увидят в заголовке
письма адреса из списка BCC. Адреса, водящие в
список BCC, разделяются запятой.
Свойства отсылаемого сообщения
MailMessage




Body –свойство типа String. В нем находится само
тело электронного письма.
BodyEncoding – свойство типа Encoding, Задает
кодировку символов сообщения.
BodyFormat – свойство типа MailFormat, в котором
устанавливается формат тела электронного
письма. Свойство может принимать значения Text и
Html.
Cc –свойство типа String. В этом свойстве
записываются адреса, разделенные запятыми, по
которым будет отправлена копия электронного
сообщения.
Свойства отсылаемого сообщения
MailMessage




From – свойство типа String, в котором указывается
электронный адрес отправителя письма.
Priority- свойство перечислимого типа MailPriority, в
котором указывается приоритет отсылаемого
письма. Свойство может принимать значения High,
Low и Normal.
Subject – свойство типа String. В нем записывается
тема отправляемого сообщения.
To – свойство типа String. В нем указывается адрес
электронной почты, по которой будет отправлено
создаваемое сообщение.
Создание почтового соединения
using System.Web.Mail;
…
System.Web.Mail.MailMessage Message = new
MailMessage();
Message.To = "it@3case.sv.local";
Message.From = "PolyakovaLN@ulsu.ru";
Message.Subject = ”Пример отправки";
Message.Body = "Это текст почтового сообщения.
отправленный"+System.DateTime.Now.ToString();
Присоединение файла
string sAttach = @"\\adm-119-1\internet\test1.txt";
char[] delim = new char[] {','};
try
{
foreach (string sSubstr in sAttach.Split(delim))
{
MailAttachment myAttachment = new
MailAttachment(sSubstr);
Message.Attachments.Add(myAttachment);
}
Присоединение файла
}
catch(Exception ex)
{
this.Response.Write("no attach "+ex.Message);
}
Отправка почтового сообщения
try
{
SmtpMail.SmtpServer = "adm-119-1";
SmtpMail.Send(Message);
}
catch(System.Web.HttpException ehttp)
{
Console.WriteLine("Error while mail message!!\n");
}
Download