Claudio,
 
Asi sin mirar mucho me da la idea que alguien no esta entendiendo el formato 
MIME del attachment pero no se donde buscar. Como vos decis "..debe ser algo 
que lo toma diferente.." y en principio lo único que no está bajo tu control es 
el servidor de correo.
No es de mucha ayuda, pero te pregunto lo que no dijiste para ver si surge 
algo:¡Cuando envias desde una y otra pc, el servidor de correo es el mismo (no 
Localhost digamos).? y El Acrobat Reader o el driver que sea para manejar los 
PDF es el mismo en ambos casos?
 
Saludos
 
Jorge
  

________________________________
 De: Claudio Speroni <[email protected]>
Para: [email protected] 
Enviado: lunes, 4 de marzo de 2013 16:15
Asunto: [puntonet] Consulta sobre envio de mail
  

Angel, el archivo se genera en un directorio del cliente, y la rutina que lo 
genera devuelve el nombre completo del archivo (path + filename + .pdf) para 
adjuntarlo al mail
Ese archivo se ve perfectamente con el adobe pdf reader en producción y 
desarrollo, es mas ese archivo es exactamente igual en tamaño y contenido byte 
por byte en producción y desarrollo, lo único que varia, obviamente es la fecha 
de creacion del mismo,
Debe ser algo que al adjuntarlo lo toma diferente en producción que en 
desarrollo, pero no logro descubrir que, me fije versión del  windows, las 2 
con windows 7 mismo SP, versión del framework 4.0 (v4.0.30319), configuración 
regional del Windows, los usuarios son del grupo administradores, hasta puse 
los ejecutables en el mismo directorio (C:\Inovice) y no pude resolverlo, la 
verdad ya no se que mas mirar
 
Gracias por tu interés en este tema
 
Claudio Speroni
 
 
De:[email protected] [mailto:[email protected]] En nombre de Angel "Java" 
Lopez
Enviado el: lunes, 04 de marzo de 2013 07:02
Para: [email protected]
Asunto: [puntonet] Consulta sobre envio de mail
 
Hola gente!
 
Claudio, una pregunta:
 
-          Pudiste comprobar el archivo PDF generado en la maquina de 
producción?
 
Por lo que vi del código, es una rutina tuya la que lo genera (llamando a 
Crystal Report) y es esa rutina la que te da el nombre. Tal vez el problema 
esta ahí, antes de ir a enviar el email. Tal vez el Crystal lo genera mal, o de 
forma distinta. Veria primero de revisar este punto.
 
Nos leemos!
 
Angel “Java” Lopez
@ajlopez
 
De:[email protected] [mailto:[email protected]] En nombre de Claudio Speroni
Enviado el: Monday, March 04, 2013 12:42 AM
Para: [email protected]
Asunto: [puntonet] Consulta sobre envio de mail
 
Estimados, tengo el siguiente problema y agradezco de antemano la ayuda que me 
puedan dar
 
Tengo una rutina para enviar por mail un archivo PDF como adjunto
En desarrollo funciona correctamente, y cuando lo uso en producción instalado 
en la pc de mi cliente no funciona (esto es lo que nos vuelve locos a la 
mayoría de los programadores)
 
El tema es así:
Utilizo VS 2010 con lenguaje vb.net
se genera un archivo PDF exportado desde reporte crystal Report 
(InvoiceNumber_00000026.pdf)
se envía por mail a una dirección de correo electrónico como adjunto el archivo 
generado en el paso anterior y un archivo htm (statements_00202823.htm) también 
como adjunto
el mail se envía correctamente, sin errores
 
ahora viene el problema
Si lo envío desde mi pc (entorno de desarrollo) el mail llega a la dirección de 
correo indicada, con los 2 adjunto, el PDF y el HTM ambos con el nombre que se 
envió desde el aplicativo
Si lo envío desde la pc del cliente (entorno de producción) el mail llega a la 
dirección de correo indicada, con los 2 adjuntos, pero el PDF llega con el 
nombre “=_utf-8_B_SW52b2ljZSBOwrogMDAwMDAwMjkgLSBB.pdf” y no se puede abrir, el 
htm llega con el nombre correcto y se puede abrir sin problemas
 
El contenido del archivo “=_utf-8_B_SW52b2ljZSBOwrogMDAwMDAwMjkgLSBB.pdf” es el 
siguiente
 
=?utf-8?B?WTJOdmRXNTBJRTUxYldKbGNpQXdNakF5Pz0NCiA9P3V0Zi04P0I/T0RJ?=\
\
=?utf-8?B?ekxsQkVSZz09Pz0=?="
Content-Transfer-Encoding: base64
Content-Disposition: attachment
 
JVBERi0xLjcgCiXi48/TIAoxIDAgb2JqIAo8PCAKL1R5cGUgL0NhdGFsb2cgCi9Q
YWdlcyAyIDAgUiAKL1BhZ2VNb2RlIC9Vc2VOb25lIAovVmlld2VyUHJlZmVyZW5j
 
Y continua cerca de 41k mas que no lo incluyo para no hacer muy grande este 
correo
 
A continuación transcribo la función que utilizo para el envío de correo
 
 
PrivateSub Enviar()
DimobjSmtp As New System.Net.Mail.SmtpClient
        Dim Mailmsg As System.Net.Mail.MailMessage
        Dim fromAddress As System.Net.Mail.MailAddress = Nothing
        Dim strBody As String = ""
        Dim strAsunto As String = ""
        Dim blnEnviado As Boolean = True
        Try
            Me.bdsInvoice.EndEdit()
            With Me.dtsDatos.ServidorCorreo(0)
                objSmtp.Host = .SMTP.Trim
                objSmtp.Port = .PuertoSMTP
                objSmtp.EnableSsl = .SSLHabilitado
                If .UsuarioSTMP.Trim <> "" Then
                    objSmtp.Credentials = New 
System.Net.NetworkCredential(.UsuarioSTMP, .ContraseñaSMTP)
                End If
                fromAddress = New System.Net.Mail.MailAddress(.Mail, .Remitente)
            End With
            For Each row As dtsInvoice.InvoiceRow In 
Me.dtsInvoice.Invoice.Select("Enviado = 0")
                Dim toAddress As System.Net.Mail.MailAddress = Nothing
                Dim strArchivoPDF As String = ""
                Dim strArchivoHTM As String = Archivos.DirectorioTemporal.Trim 
& "Statement_" & row.AccountNumber.ToString.PadLeft(7, "0") & ".htm"
                With Me.dtsDatos.Clientes.FindByID_Cliente(row.ID_Cliente)
                        toAddress = New System.Net.Mail.MailAddress(.Mail.Trim, 
.Nombre.Trim)
                    DimdtsImpresion As New dtsImpresion
                    Impresion.PrepararDatasetImpresion(dtsImpresion, dtsDatos, 
.ID_Cliente, row.InvoiceNumber)
                    strArchivoPDF = Impresion.ImprimirInvoice(dtsImpresion, 
.AccountNumber, row.InvoiceNumber, True)
                    strAsunto = “”
                    strBody = “”
                End With
                If row.HTML.Trim <> "" Then
                    System.IO.File.WriteAllText(strArchivoHTM, row.HTML)
                End If
 
                With Me.dtsDatos.ServidorCorreo(0)
                    strBody = strBody & vbCrLf & vbCrLf & .Firma
                End With
 
                Mailmsg = New System.Net.Mail.MailMessage()
                With Mailmsg
                    .From = fromAddress
                    .IsBodyHtml = False
                    .Subject = strAsunto
                    If strArchivoPDF.Trim <> "" AndAlso 
System.IO.File.Exists(strArchivoPDF) Then
 
                        .Attachments.Add(New 
Net.Mail.Attachment(GetStreamFile(strArchivoPDF), 
IO.Path.GetFileName(strArchivoPDF), "application/pdf"))
                    End If
                    If strArchivoHTM.Trim <> "" AndAlso 
System.IO.File.Exists(strArchivoHTM) Then
                        .Attachments.Add(New 
Net.Mail.Attachment(GetStreamFile(strArchivoHTM), 
IO.Path.GetFileName(strArchivoHTM)))
                    End If
                    .Body = strBody
 
                    .Bcc.Add(fromAddress)
                    .To.Add(toAddress)
                    Try
                        objSmtp.Send(Mailmsg)
                    Catch ex As System.Net.Mail.SmtpException
                        blnEnviado = False
                    End Try
                End With
                Mailmsg = Nothing
            Next
        Catch ex As Exception
            Throw ex
        EndTry
End sub
 
PrivateFunction GetStreamFile(filePath As String) As IO.Stream
        Using fileStream As IO.Stream = IO.File.OpenRead(filePath)
            Dim memStream As New IO.MemoryStream()
            memStream.SetLength(fileStream.Length)
            fileStream.Read(memStream.GetBuffer(), 0, CInt(fileStream.Length))
            Return memStream
        End Using
    End Function

Responder a