Email attachment constructor och läsa en "Stream"

.NET

3 svar · 349 visningar · startad av CatZ

Medlem sedan jan. 20022 440 inlägg
Trådstart#1

Jag skapar en Stream med följande lilla kodsnutt men förstår inte riktigt hur jag ska läsa av streamen när jag ska bygga ihop mitt epostmeddelande.

Dim s As System.IO.MemoryStream = crReportDocument.ExportToStream(ExportFormatType.PortableDocFormat)
' the code below will create pdfs in memory and stream them
' to the browser instead of creating files on disk.
With HttpContext.Current.Response
	.ClearContent()
	.ClearHeaders()
	.ContentType = "application/pdf"
	.AddHeader("Content-Disposition", "inline; filename=" & Fname & "")
	.BinaryWrite(s.ToArray)
	.End()
End With
Return Fname

Ovanstående kod skapar ett filnamn och en disposition (bilaga?) osv nu är det då dags att läsa av det där och sätta ihop ett epostmeddelande så jag kan skicka ordern till kunden.

Try
	Dim ms = New MemoryStream(strFileName)
	myMailMessage.Attachments.Add(ms)
	SmtpClient.Send(myMailMessage)
	myResult = True
Catch e As Exception
	infoMessage = e.Message
	myResult = False
Finally

Den nedersta koden kommer givetvis inte fungera hur läser jag av en stream och lägger till den som attachment? JAg är nära men det räcker ju inte alltid :)

Medlem sedan dec. 19996 721 inlägg
#2

ExportToStream returnerar en stream. En av Attachment-konstruktorerna tar en stream som argument. Det är allt du behöver veta.

/G

Medlem sedan jan. 20022 440 inlägg
#3

Nu tycker jag du är otrevlig emission! ;) Lösningen är att ändra vad funktionen returnerar från sträng till bilaga.

Det är allt ni behöver veta :p

Medlem sedan dec. 19996 721 inlägg
#4

Jag vet inte vad du menar, men om det funkar så är det väl OK. :)

245 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)