2009-12-26 5 views
5

comment faire ici est mon code actuel, ceci est une forme de fenêtres:comment envoyer un email avec pièce jointe dans vb.net? ?

mail.From = New MailAddress(TextBox2.Text) 
    mail.To.Add(New MailAddress(TextBox1.Text)) 
    mail.Subject = TextBox3.Text 
    mail.Body = TextBox4.Text 



    mail.IsBodyHtml = True 


    Dim client As SmtpClient = New SmtpClient("smtp.gmail.com") 
    client.EnableSsl = True 
    client.Credentials = New System.Net.NetworkCredential(TextBox2.Text, TextBox5.Text) 


    Try 
     client.Send(mail) 
    Catch ex As Exception 
     MessageBox.Show("Sending email failed. Please Try again") 


    End Try 

Répondre

6

Here est un excellent exemple

Public Sub SendMailOneAttachment(ByVal From As String, _ 
     ByVal sendTo As String, ByVal Subject As String, _ 
     ByVal Body As String, _ 
     Optional ByVal AttachmentFile As String = "", _ 
     Optional ByVal CC As String = "", _ 
     Optional ByVal BCC As String = "", _ 
     Optional ByVal SMTPServer As String = "") 

     Dim myMessage As MailMessage 

     Try 
      myMessage = New MailMessage() 
      With myMessage 
       .To = sendTo 
       .From = From 
       .Subject = Subject 
       .Body = Body 
       .BodyFormat = MailFormat.Text 
       'CAN USER MAILFORMAT.HTML if you prefer 

       If CC <> "" Then .Cc = CC 
       If BCC <> "" Then .Bcc = "" 

       If FileExists(AttachmentFile) Then _ 
       .Attachments.Add(AttachmentFile) 

      End With 

      If SMTPServer <> "" Then _ 
       SmtpMail.SmtpServer = SMTPServer 
      SmtpMail.Send(myMessage) 

     Catch myexp As Exception 
      Throw myexp 
     End Try 

    End Sub 

Public Sub SendMailMultipleAttachments(ByVal From As String,_ 
    ByVal sendTo As String, ByVal Subject As String, _ 
    ByVal Body As String, _ 
    Optional ByVal AttachmentFiles As ArrayList = Nothing, _ 
    Optional ByVal CC As String = "", _ 
    Optional ByVal BCC As String = "", _ 
    Optional ByVal SMTPServer As String = "") 

     Dim myMessage As MailMessage 
     Dim i, iCnt As Integer 

     Try 
      myMessage = New MailMessage() 
      With myMessage 
       .To = sendTo 
       .From = From 
       .Subject = Subject 
       .Body = Body 
       .BodyFormat = MailFormat.Text 
       'CAN USER MAILFORMAT.HTML if you prefer 

       If CC <> "" Then .Cc = CC 
       If BCC <> "" Then .Bcc = "" 

       If Not AttachmentFiles Is Nothing Then 
        iCnt = AttachmentFiles.Count - 1 
        For i = 0 To iCnt 
         If FileExists(AttachmentFiles(i)) Then _ 
          .Attachments.Add(AttachmentFiles(i)) 
        Next 

       End If 

      End With 

      If SMTPServer <> "" Then _ 
       SmtpMail.SmtpServer = SMTPServer 
      SmtpMail.Send(myMessage) 


     Catch myexp As Exception 
      Throw myexp 
     End Try 
    End Sub 

    Private Function FileExists(ByVal FileFullPath As String) _ 
    As Boolean 
     If Trim(FileFullPath) = "" Then Return False 

     Dim f As New IO.FileInfo(FileFullPath) 
     Return f.Exists 

    End Function 
3

Voir cet exemple:

http://msdn.microsoft.com/en-us/library/system.net.mail.attachment.aspx

Essentiellement, vous aurez besoin d'ajouter quelque chose comme ça :

Dim file as string = "c:\Documents\MyFile.txt" 
''// Create the file attachment for this e-mail message. 
Attachment data = new Attachment(file, MediaTypeNames.Application.Octet); 
''// Add time stamp information for the file. 
ContentDisposition disposition = data.ContentDisposition; 
disposition.CreationDate = System.IO.File.GetCreationTime(file); 
disposition.ModificationDate = System.IO.File.GetLastWriteTime(file); 
disposition.ReadDate = System.IO.File.GetLastAccessTime(file); 
''// Add the file attachment to this e-mail message. 
message.Attachments.Add(data); 
+0

J'ai essayé le deuxième exemple ci-dessus mais je n'ai pas pu le compiler. Il doit y avoir des étapes qui manquent. –

Questions connexes