免費論壇 繁體 | 簡體
Sclub交友聊天~加入聊天室當版主
分享
返回列表 回復 發帖

開檔2次防護

Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click

If EMailTo = "" Then
             Try
                 Dim mails As String = "  " & Trim(EMailFrom) & " "
                 Dim mailscc As String = "" & Trim(EMailToS) & " "
                 Dim smtpserver As New SmtpClient()
                 Dim mail As New MailMessage()
                 smtpserver.Credentials = New Net.NetworkCredential("user@****.com", "pw")
                 smtpserver.Port = 25
                 smtpserver.Host = "mail.****.com"
                 mail = New MailMessage()
                 mail.From = New MailAddress(UsrM)
                 mail.To.Add(mails)
                 mail.CC.Add(mailscc)
                 mail.Subject = " TPE " & U1.Text & " 請假單,請假單號 " & tempSeqNO & ",請假日期 From " & BDD & " TO " & EDD & " 共 " & Tdays & " 天 " & ATimes & " 小時," & UserCName & "已經同意代理 "
                 mail.Body = "" & Remark & ""
                 mail.Attachments.Add(New Attachment("D:\test.jpg")) '因附加此圖檔當按Button2次時造成GDI錯誤
                smtpserver.Send(mail)
                 MsgBox("Mail Sent")
             Catch ex As Exception
                 Close()
             End Try
         Else

             Try
                 Dim mails As String = "  " & Trim(EMailTo) & " "
                Dim mailscc As String = "" & Trim(EMailToS) & " "
                 Dim smtpserver As New SmtpClient()
                 Dim mail As New MailMessage()
                 smtpserver.Credentials = New Net.NetworkCredential("user@****.com", "pw")
                 smtpserver.Port = 25
                 smtpserver.Host = "mail.****.com"
                 mail = New MailMessage()
                 mail.From = New MailAddress(UsrM)
                 mail.To.Add(mails)
                 'mail.CC.Add(mailscc)
                 mail.Bcc.Add("user@****.com")
                 mail.Subject = " TPE " & U1.Text & " 請假單,請假單號 " & tempSeqNO & ",請假日期 From " & BDD & " TO " & EDD & " 共 " & Tdays & " 天 " & ATimes & " 小時," & UserCName & "已經同意代理 "
                 mail.Body = "" & Remark & ""
                 mail.Attachments.Add(New Attachment("D:\test.jpg"))    '因附加此圖檔當按Button2次時造成GDI錯誤
                smtpserver.Send(mail)
                 MsgBox("Mail Sent")

             Catch ex As Exception
                 Close()
             End Try
         End If

End Sub


----------------------------------------------------------------------------
檔案被載入時,檔案會被獨佔,所以不能二次載入。

要避免此狀況先檢視多載參數,例如 Attachment 允許 Stream ,所以可以將檔案用 FlieStream 讀入後,寫入 MemoryStream ,再關閉 FileStream 後,把 MemoryStream 給 Attachment 當參數即可。
返回列表