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

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

description

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

Transcript of 第13章 FTP 檔案上傳、 Email 自動傳送

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 自動傳送

結束結束