[ VB.Net ] Foutmelding verzending via system.net.mail

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo Allemaal,


Ik heb een kleine applicatie draaien, die die simpel weg wat bestanden kopieërd,
Packaged (d.m.v. WinRar) ik creër hier bestanden van 10Mb max. en daarna wordt het verstuurd via email (d.m.v. een attachment).Nu heb ik deze applicatie draaiend zonder problemen op vb.net 9.0.
Pas geleden ben ik de applicatie gaan herzien, omdat ik wat andere inzichten heb en ik persoonlijk denk dat er nog ruimte is voor verbetering. Nu heb ik gekozen voor vb.net 10.0, Ik heb de verzend code van de mail gelijk gehouden (onderstaand).

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
imports system.net.mail 

Dim smtpserver As New SmtpClient() 
Dim Mail As New MailMessage()
Dim AttachmentFile As New Attachment(Filename)
Dim MailBody As String = "blablabla"

smtpserver.Host = "blablabla"

Mail.Attachments.Add(AttachmentFile)
Mail.From = New MailAddress("fail@vb.net")
Mail.To.Add ("Tofail@vb.net")
Mail.Subject = (MailSubject)
Mail.Body = (MailBody)

Try
    smtpserver.Send(Mail)
Catch ex As Exception
    ErrorHandling.ErrorLoggingWrite("Dellivery Failure:" + ex.Source + ex.Message + ex.Source.ToString + ex.InnerException.ToString, False)
End Try


Nu krijg ik een foutmelding die ik zelf niet begrijp.In eerste instantie dacht ik dat de file "in use"(locked) bleef, dit heb ik inmiddels afgevangen met een functie die check of ik read/write acces heb voordat de applicatie verder gaat.Dit is dus ook niet het geval. Dus ik denk ik dump de ex.messages naar mijn errorhandler en kijk of ik wat zinnigs kan vinden, maar ik kom er geen wijs uit.Ook omdat het onder vb.net 9.0 gewoon werkt zonder problemen. En onze mail server staat afgeregeld zodat bestanden tot 12Mb verzonden kunnen worden, de applicatie packaged ze tot 10Mb dus de groote kan het ook niet zijn i.m.o. Wat wel opvalt als de mails een grote hebben van 3Mb er geen problemen optreden. ( wat toch weer zou duiden op de grote van het bestand). 8)7

Foutmelding:
The following Error Acourded: Dellivery Failure:SystemFailure sending mail.SystemSystem.IndexOutOfRangeException: Index was outside the bounds of the array.
at System.Net.Base64Stream.EncodeBytes(Byte[] buffer, Int32 offset, Int32 count, Boolean dontDeferFinalBytes, Boolean shouldAppendSpaceToCRLF)
at System.Net.Base64Stream.Write(Byte[] buffer, Int32 offset, Int32 count)
at System.Net.Mime.MimePart.Send(BaseWriter writer)
at System.Net.Mime.MimeMultiPart.Send(BaseWriter writer)
at System.Net.Mail.SmtpClient.Send(MailMessage message)

Heeft iemand een idee wat hier mis gaat ?

Alvast bedankt,

Groeten Bas

[ Voor 0% gewijzigd door Verwijderd op 03-05-2011 10:33 . Reden: Added smtpserver to code (vergeten) ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
base64 heeft een gemiddelde overhead van 137% dus een bestand van 10Mb zal boven de 12Mb uit komen. En gezien attachments base64 encoded worden (by default althans) lijkt me dat dus de meest logische verklaring.

[ Voor 52% gewijzigd door RobIII op 03-05-2011 10:32 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
RobIII schreef op dinsdag 03 mei 2011 @ 10:26:
base64 heeft een overhead van 137% dus een bestand van 10Mb zal boven de 12Mb uit komen.
Thnx voor replay, als ik de bestand grote aanpas naar 8Mb wat dus uitkomt op 8 * 1.37 dan kom ik uit op 10.96 Mb dat doet het probleem zich nog steeds voor , hiermeer is het dus niet opgelost.
Kan ik ik niet aangeven dat ik de mail base32 wil hebben? (misschien stome vraag) maar ik ben nog niet zo ervaren.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op dinsdag 03 mei 2011 @ 10:31:
Kan ik ik niet aangeven dat ik de mail base32 wil hebben? (misschien stome vraag) maar ik ben nog niet zo ervaren.
base32 :? En wat denk je dat dat uithaalt? Dat veroorzaakt alleen maar meer overhead en daarbij geloof ik niet dat er een mailclient is die daarmee overweg zal kunnen.

Zet eens een wireshark oid open op de lijn en kijk eens naar de exacte response van de mailserver. Daar haal je veel meer uit. Kwestie van debuggen.

[ Voor 16% gewijzigd door RobIII op 03-05-2011 10:34 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
edit: dat is onzin :$

[ Voor 96% gewijzigd door Woy op 03-05-2011 12:27 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”