vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

ASP.NET, WebServices u. Remoting
SmtpClient-Anhanggröße 
Autor: HellSeeker2k
Datum: 11.10.10 16:07

Hallo, ich bastle derzeit an einem Tool welches unter anderem E-Mails versenden soll. Konnte mittlerweile fast all meine Probleme lösen, nur das mit den großen Anhängen nicht.

        Dim client As New SmtpClient
        With client
            .Host = "smtpserver"
            .Port = 587
            .Timeout = 5 * 60 * 1000
            .DeliveryMethod = SmtpDeliveryMethod.Network
            .EnableSsl = True
            .Credentials = anmeldung
 
            .Send(eMail)
        End With
So Sieht mein Versandvorgang aus. Wenn ich jetzt versuche einen Anhang > 2 MB der Mail anzufügen, kommt beim Versenden immer folgender Fehler:

Smtp.Exception wurde nicht behandelt.
Fehler beim Senden von Mail.


Das ganze in ein Try Catch gepackt spuckt mir folgendes aus:
System.Net.Mail.SmtpException: Fehler beim Senden von Mail. ---> _
  System.IndexOutOfRangeException: Der Index war außerhalb des Arraybereichs.
   bei System.Net.Base64Stream.EncodeBytes(Byte[] buffer, Int32 offset, Int32 _
   count, Boolean dontDeferFinalBytes, Boolean shouldAppendSpaceToCRLF)
   bei System.Net.Base64Stream.Write(Byte[] buffer, Int32 offset, Int32 count)
   bei System.Net.Mime.MimePart.Send(BaseWriter writer)
   bei System.Net.Mime.MimeMultiPart.Send(BaseWriter writer)
   bei System.Net.Mail.Message.Send(BaseWriter writer, Boolean sendEnvelope)
   bei System.Net.Mail.SmtpClient.Send(MailMessage message)
   --- Ende der internen Ausnahmestapelüberwachung ---
   bei System.Net.Mail.SmtpClient.Send(MailMessage message)
   bei WebmailClient.NeueMail.SendMail(String Absender, String Empfänger, _
     String Betreff, String Nachricht, String Cc, String Bcc, ListView Anhänge) _
     in C:\***.vb:Zeile 217.
Kann mir jemand sagen was ich falsch mache? Die Magische Grenze sind ca. 2MB Dateigröße, darunter funktioniert es problemlos. Bzw, wenn ich 10 Dateien mit 1,9MB in die Mail anhänge funktioniert es auch.


mfg
H2K
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SmtpClient-Anhanggröße 
Autor: HellSeeker2k
Datum: 12.10.10 10:56

So sieht der ganze Code aus, vielleicht kann mir so jemand weiterhelfen?

Private Sub SendMail(ByVal Absender As String, ByVal Empfänger As String, ByVal _
  Betreff As String, ByVal Nachricht As String, _
                         Optional ByVal Cc As String = Nothing, _
                         Optional ByVal Bcc As String = Nothing, _
                         Optional ByVal Anhänge As ListView = Nothing)
        Me.Enabled = False
        Me.Cursor = Cursors.WaitCursor
 
        Dim UserMail As MailAddress = New MailAddress(Username)
 
        Try
            Dim anmeldung As New Net.NetworkCredential
            anmeldung.UserName = Username
            anmeldung.Password = Password
 
            Dim eMail As New MailMessage(Absender, Empfänger)
 
            With eMail
 
                .From = New Net.Mail.MailAddress(Absender)
                If LesebestätigungToolStripMenuItem.Checked = True Then
                    .Headers.Add("Disposition-Notification-To", Chr(34) & "<" & _
                      Absender & ">")
                End If
                'Fügt den Benutzer als Bcc ein, damit eine Kopie der Mail im 
                ' Postfach landet
                If KopieAnAbsenderToolStripMenuItem.Checked = True Then
                    .Bcc.Add(UserMail)
                End If
                .Subject = Betreff
                .IsBodyHtml = False
                .BodyEncoding = System.Text.Encoding.Default
                .Priority = MailPriority.Normal
 
 
                If Not IsNothing(Anhänge) Then
'Anhänge ist ein ListView in der alle angefügten Dateien gesammelt werden wobei 
' in SubItems(2) der Pfad zur Datei steht
                    For i As Integer = 0 To Anhänge.Items.Count - 1
                        Dim aPfad As String = Anhänge.Items(i).SubItems( _
                          2).Text.ToString
                        Dim Anhang = New Attachment(aPfad)
                        .Attachments.Add(Anhang)
                    Next
                End If
 
                '.Attachments.Add(anhang)
                .Body = Nachricht
            End With
 
            Dim client As New SmtpClient
            With client
                .Host = "smtp.mail.emea.microsoftonline.com"
                .Port = 587
                .Timeout = 5 * 60 * 1000
                .DeliveryMethod = SmtpDeliveryMethod.Network
                .EnableSsl = True
                .Credentials = anmeldung
 
                .Send(eMail)
            End With
 
            Me.Close()
 
        Catch ex As Exception
 
            MsgBox(ex.ToString, MsgBoxStyle.Critical)
 
        End Try
        Me.Enabled = True
        Me.Cursor = Cursors.Default
    End Sub
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SmtpClient-Anhanggröße 
Autor: HellSeeker2k
Datum: 12.10.10 13:56

Konnte das Problem selber lösen.

eMail.Attachments.Item(0).TransferEncoding = Net.Mime.TransferEncoding.SevenBit
Das war des Rätsels Lösung
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SmtpClient-Anhanggröße 
Autor: Jojo
Datum: 22.03.11 22:12

Danke für das Posten der Lösung!

Ich hatte das gleiche Problem und Dein Posting hat mir geholfen den Fehler zu beheben ....

Joachim

Joachim

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel