私はWebサーバーを移行し、いくつかのアプリケーション(vb.net環境)を書き直しています。そうすることで、私はジレンマに出くわし、何か助けに感謝します。データベースから.pdfを取得し、それをファイル構造に書き込まずに添付ファイルとして電子メールに挿入するには
私は成功したデータベースのうち、.pdfファイルを引っ張って、それを表示することができます。
Dim iID As Integer
Dim bPDF As Byte()
iID = Convert.ToInt32(Request.QueryString("Id"))
bPDF = CodeMod.GetPdfBytes(iID)
Response.ContentType = "application/pdf"
Response.OutputStream.Write(bPDF, 0, bPDF.Length)
---------------------------------
Public Function GetPdfBytes(ByVal id As Int32) As Byte()
Dim SQLcon As New SqlClient.SqlConnection
Dim SQLcmd As New SqlClient.SqlCommand
Dim dt As New DataTable
SQLcon.ConnectionString = sConnection("pdfStore")
SQLcmd.CommandText = "[DOIMSQL,1433].[DOI_PDF_Storage].dbo.sel_pdf_id"
SQLcmd.CommandType = CommandType.StoredProcedure
SQLcmd.Parameters.Add("@pdf_id", SqlDbType.VarChar).Value = id
SQLcmd.Connection = SQLcon
SQLcon.Open()
dt.Load(SQLcmd.ExecuteReader)
SQLcon.Close()
GetPdfBytes = DirectCast(dt.Rows(0)("pdf_file"), Byte())
End Function
を、私は正常にファイルを添付してメールを送信することができます:私はするために必要なもの
CodeMod.sendMail(strTo, strFrom, "Test Email", "Test Content",, Server.MapPath("/Test/TEST.pdf"))
---------------------------------
Public Sub sendMail(strTo As String, strFrom As String, strSubject As String, strMsg As String, Optional ByVal strCc As String = "", Optional ByVal file As String = "")
Dim oMMsg As New Net.Mail.MailMessage()
oMMsg.From = New MailAddress(strFrom)
oMMsg.To.Add(strTo)
oMMsg.Subject = strSubject
oMMsg.Body = strMsg
oMMsg.IsBodyHtml = True
If file <> "" Then oMMsg.Attachments.Add(New Attachment(file))
Dim client As New SmtpClient()
client.Host = "correct.information"
client.Port = 25
client.Send(oMMsg)
End Sub
をこれらの2つの能力と結婚することです。私はデータベースから.pdfを取得し、それを電子メールの添付ファイルとして送信する必要があります...
...これまでファイルをファイル構造に書き込むことはありません。
フォロー[C#ではMailMessageへのMemoryStreamからファイルを添付](http://stackoverflow.com/q/5336239/205233)から接続する方法上の既存の個別の質問がありますが、ストリームを "0"に戻すことを忘れないでください。 – Filburt