第13章 ftp 檔案上傳、 email 自動傳送

17
13 13 FTP FTP 第第第第第第第第Email Email 第第第第 第第第第 報報報 報報報 M9153314 M9153314 報報報 報報報

Upload: marla

Post on 21-Jan-2016

85 views

Category:

Documents


0 download

DESCRIPTION

第13章 FTP 檔案上傳、 Email 自動傳送. 報告人 M9153314 李育旻. FTP 檔案上傳. 檔案上傳的發動在瀏覽器這一端,在設計程式時,要注意 表單 Enctype (編碼型態)屬性須設定成” multipart/form-data” 佈置 File 型態的 HTML 輸入欄位,供使用者選取所要上傳的檔案. 檔案上傳 -- 上傳一個檔案 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第13章 FTP 檔案上傳、 Email 自動傳送

第13章第13章FTPFTP 檔案上傳、檔案上傳、 EmailEmail 自動自動傳送傳送

報告人報告人M9153314M9153314李育旻李育旻

Page 2: 第13章 FTP 檔案上傳、 Email 自動傳送

FTPFTP 檔案上傳檔案上傳

檔案上傳的發動在瀏覽器這一端,在設計檔案上傳的發動在瀏覽器這一端,在設計程式時,要注意程式時,要注意 表單表單 EnctypeEnctype (編碼型態)屬性須設定成”(編碼型態)屬性須設定成”

multipart/form-data”multipart/form-data” 佈置佈置 FileFile 型態的型態的 HTMLHTML 輸入欄位,供使用者輸入欄位,供使用者

選取所要上傳的檔案選取所要上傳的檔案

Page 3: 第13章 FTP 檔案上傳、 Email 自動傳送

<Html>

<Body BgColor=White>

<H3> 檔案上傳 -- 上傳一個檔案 <Hr></H3>

<Form Enctype="multipart/form-data" runat="server">

請輸入完整檔案路徑:

<Input Type="File" id="FileUp" runat="server"><P>

<asp:Button runat="server" Text="Upload" OnClick="UploadFile" />

<Hr>

<asp:Label runat="server" id="Msg" />

</Form>

</Body>

</Html>FileUp

Msg

Page 4: 第13章 FTP 檔案上傳、 Email 自動傳送

<script language="VB" runat="server"> Sub UploadFile(sender As Object, e As EventArgs) Dim file As HttpPostedFile = FileUp.PostedFile If file.ContentLength <> 0 Then Msg.Text = " 大小 : " & file.ContentLength Msg.Text &= "<br> 類型 : " & file.ContentType Msg.Text &= "<br> 名稱 : " & file.FileName

Dim FileSplit() As String = Split( file.FileName, "\" ) Dim FileName As String = FileSplit(FileSplit.Length-1) file.SaveAs( Server.MapPath(FileName) ) Else Msg.Text = "" End If End Sub

</script>

FileUp

Msg

Page 5: 第13章 FTP 檔案上傳、 Email 自動傳送

FTPFTP 上傳多個檔案上傳多個檔案 若想要同時上傳多個檔案,要在表單中佈置多個若想要同時上傳多個檔案,要在表單中佈置多個 <Inp<Inp

ut type=“FILE”>ut type=“FILE”> 欄位欄位<Html>

<Body BgColor=White>

<H3> 檔案上傳 -- 上傳多個檔案 <Hr></H3>

<Form Enctype="multipart/form-data" runat="server">

請輸入完整路徑檔案名稱: <br>

<Input Type="File" id="FileUp1" runat="server"><br>

<Input Type="File" id="FileUp2" runat="server"><br>

<Input Type="File" id="FileUp3" runat="server"><br>

<asp:button runat="server" Text="Upload" OnClick="UploadFile" />

<Hr>

<asp:Label runat="server" id="Msg" />

</Form></Body></Html>

Page 6: 第13章 FTP 檔案上傳、 Email 自動傳送

<script language="VB" runat="server"> Sub UploadFile(sender As Object, e As EventArgs) Dim I As Integer Msg.Text = "" For I = 0 To Request.Files.Count - 1 Dim File As HttpPostedFile = Request.Files(I)

If File.ContentLength > 0 Then ' 顯示上傳檔案的資訊 Msg.Text &= " 檔案 : " & File.FileName Msg.Text &= ", " & File.ContentLength Msg.Text &= ", " & File.ContentType & "<br>"

' 儲存檔案 Dim FileSplit() As String = Split( File.FileName, "\" ) Dim FileName As String = FileSplit(FileSplit.Length-1) File.SaveAs( Server.MapPath(FileName) ) End If Next End Sub</script>

Page 7: 第13章 FTP 檔案上傳、 Email 自動傳送

EmailEmail 自動傳送自動傳送

網頁製做中,需要自動傳送網頁製做中,需要自動傳送 EmailEmail 給上網者的情給上網者的情況很多,例如:況很多,例如: 電子購物網頁:上網者購買物品後,傳送物品清單供電子購物網頁:上網者購買物品後,傳送物品清單供

上網者備查上網者備查 密碼網頁:在需要登入帳號及密碼的網頁中,上網者密碼網頁:在需要登入帳號及密碼的網頁中,上網者

如果忘了密碼,我們可提供一個網頁讓上網者輸入原如果忘了密碼,我們可提供一個網頁讓上網者輸入原先註冊之先註冊之 EmailEmail ,然後系統自動將密碼,然後系統自動將密碼 EmailEmail 給此一給此一郵件位址,上網者再去收信,便可知道密碼為何郵件位址,上網者再去收信,便可知道密碼為何

電子賀卡:上網者可選擇卡片寄給某人,我們要實做電子賀卡:上網者可選擇卡片寄給某人,我們要實做寄信給受卡者的動作寄信給受卡者的動作

Page 8: 第13章 FTP 檔案上傳、 Email 自動傳送

MailMessagesMailMessages 及及 SmtpMailSmtpMail 物件物件 MailMessagesMailMessages 用來設定用來設定 EmailEmail 的內容的內容 SmtpMailSmtpMail 負責將負責將 EmailEmail 傳送出去傳送出去<script Language="VB" runat="server"> Sub Button_Click(sender As Object, e As EventArgs) Dim mail As MailMessage = New MailMessage mail.To = 收件人 e-mail mail.From = 送件人 e-mail mail.Subject = 主旨 mail.BodyFormat = 郵件格式(純文字或 HTML ) mail.Body = 郵件內容 On Error Resume Next SmtpMail.SmtpServer = “smtp 伺服器的位址 " SmtpMail.Send(mail) If Err.Number <> 0 Then Msg.Text = Err.Description Else Msg.Text = " 郵件已經送出 !" End If End Sub</script>

Page 9: 第13章 FTP 檔案上傳、 Email 自動傳送

mailTo

mailFrom

mailSubjectmailBody

Page 10: 第13章 FTP 檔案上傳、 Email 自動傳送

<%@ Import Namespace="System.Web.Mail" %> <Html><Body BgColor="White"><H2>ASP.NET Email 發送程式 !<Hr></H2><Form runat="server"><Table Border=1> <Tr><Td> 收件者: </Td> <Td><asp:TextBox id="mailTo" Size=40 runat="server"/></Td></Tr> <Tr><Td> 寄件者: </Td> <Td><asp:TextBox id="mailFrom" Size=40 runat="server"/></Td></Tr> <Tr><Td> 主旨: </Td> <Td><asp:TextBox id="mailSubject" Size=40 runat="server"/></Td></Tr> <Tr><Td> 內文: </Td> <Td><asp:TextBox runat="server" id="mailBody" TextMode="MultiLine" Rows=8 Cols=60 /> </Td></Tr></Table><asp:Button runat="server" Text=" 送 出 " OnClick="Button_Click" /></Form><Hr><asp:Label id="Msg" runat="server" ForeColor="Red" /><p><Font Size=-1 Color=Blue> 使用本範例之前,請先參閱書本「 SMTP Server 與郵件的傳送」段落中的說明,設定好 SmtpMail.SmtpServer 屬性。 </Font></Body></Html>

Page 11: 第13章 FTP 檔案上傳、 Email 自動傳送

<script Language="VB" runat="server">

Sub Button_Click(sender As Object, e As EventArgs) Dim mail As MailMessage = New MailMessage

mail.To = mailTo.Text mail.From = mailFrom.Text mail.Subject = mailSubject.Text mail.BodyFormat = MailFormat.Text mail.Body = mailBody.Text

On Error Resume Next SmtpMail.SmtpServer = "msa.hinet.net" SmtpMail.Send(mail)

If Err.Number <> 0 Then Msg.Text = Err.Description Else Msg.Text = " 郵件已經送出 !" End If End Sub

</script>

Page 12: 第13章 FTP 檔案上傳、 Email 自動傳送

<script Language="VB" runat="server"> Sub Button_Click(sender As Object, e As EventArgs) Dim mail As MailMessage = New MailMessage

mail.To = mailTo.Text mail.From = mailFrom.Text mail.Subject = mailSubject.Text mail.BodyFormat = MailFormat.Html mail.Body = mailBody.Text

On Error Resume Next SmtpMail.SmtpServer = "msa.hinet.net" SmtpMail.Send(mail)

If Err.Number <> 0 Then Msg.Text = Err.Description Else Msg.Text = " 郵件已經送出 !" End If End Sub

Page 13: 第13章 FTP 檔案上傳、 Email 自動傳送

MailMessageMailMessage 的細部設定的細部設定 原始收件人格式原始收件人格式 mail.To=“[email protected]”mail.To=“[email protected]” 設定收件人姓名設定收件人姓名

mail.To = “mail.To = “ 王國榮王國榮 <[email protected]>”<[email protected]>” mail.From = “mail.From = “ 阿毛阿毛 <[email protected]>”<[email protected]>”

多位收件人多位收件人 mail.To = “mail.To = “ 王國榮王國榮 <[email protected]><[email protected]>, , 阿毛阿毛 <am<am

[email protected]>”[email protected]>”

副本收件人副本收件人 mail.Cc = “mail.Cc = “ 阿毛阿毛 <[email protected]>”<[email protected]>”

密件副本收件人密件副本收件人 mail.Bcc = “mail.Bcc = “ 阿毛阿毛 <[email protected]>”<[email protected]>”

Page 14: 第13章 FTP 檔案上傳、 Email 自動傳送

EmailEmail 增加附件增加附件

若要將檔案附加到若要將檔案附加到 EmailEmail 中一起傳送,所中一起傳送,所需撰寫的程式如下:需撰寫的程式如下:

Dim attach as New MailAttachment (完整路徑檔案名稱)mail.Attachments.Add(attach)…….SmtpMail.Send(mail)

程式碼解說1. 利用 New MailAttachment() 建立一個附件,建立時須傳入完整路徑檔

案名稱。例如目前目錄有 F8315.gif 檔案要設定成附件,則敘述如下 Dim attach As New MailAttachment(Server.MapPath(“F8315.gif”))  2. 建立附件後,將其加入 Email 中須呼叫 Attachments.Add 方法 mail.Attachments.Add(attach)

Page 15: 第13章 FTP 檔案上傳、 Email 自動傳送

1. 新增 <Input type=“File” , id=“FileUp” run=“server”>

2. 表單屬性增加 Enctype 設定,如下 <Form enctype=“multipart/form-data” run

=“server”>

範例

Page 16: 第13章 FTP 檔案上傳、 Email 自動傳送

Sub Button_Click(sender As Object, e As EventArgs) Dim mail As MailMessage = New MailMessage mail.To = mailTo.Text mail.From = mailFrom.Text mail.Subject = mailSubject.Text mail.Body = mailBody.Text If Format.SelectedItem.Text = " 純文字格式 " Then mail.BodyFormat = MailFormat.Text Else mail.BodyFormat = MailFormat.Html End If Dim file As HttpPostedFile = FileUp.PostedFile If file.ContentLength <> 0 Then Dim FileSplit() As String = Split( File.FileName, "\" ) Dim FileName As String = FileSplit(FileSplit.Length-1) File.SaveAs( Server.MapPath(FileName) ) Dim attach As New MailAttachment(Server.MapPath(FileName)) mail.Attachments.Add( attach ) End If On Error Resume Next SmtpMail.SmtpServer = "msa.hinet.net" SmtpMail.Send(mail)

程式碼解說

Page 17: 第13章 FTP 檔案上傳、 Email 自動傳送

結束結束