Hola buenas, estoy haciendo un sistema para enviar emails desde un form, y tengo que ceder mi contraseña para que se puedan mandar emails correctamente, tengo una duda, hay alguna forma de cargar externamente un recurso si que de problemas?
Es decir, por ejemplo, en mi hosting meto un htaccess y un txt (el htaccess bloquea el acceso según el user-agent (por si alguien se infiltra) y luego que haya alguna forma de que el WindowsForms si pueda sacar ese TXT)..
Edito: Se me ha ocurrido una idea, que es darle permisos dentro de mi FTP... (Con chmod) Voy a ver si hago algo...
Y por si fuera poco pues añado esto:
Function SendEmail(ByVal Recipients As List(Of String), _
ByVal FromAddress As String, _
ByVal Subject As String, _
ByVal Body As String, _
ByVal UserName As String, _
ByVal Password As String, _
Optional ByVal Server As String = "smtp.gmail.com", _
Optional ByVal Port As Integer = 587, _
Optional ByVal Attachments As List(Of String) = Nothing) As String
Dim Email As New MailMessage()
Try
Dim SMTPServer As New SmtpClient
For Each Attachment As String In Attachments
Email.Attachments.Add(New Attachment(Attachment))
Next
Email.From = New MailAddress(FromAddress)
For Each Recipient As String In Recipients
Email.To.Add(Recipient)
Next
Email.Subject = Subject
Email.Body = Body
SMTPServer.Host = Server
SMTPServer.Port = Port
SMTPServer.Credentials = New System.Net.NetworkCredential(UserName, Password)
SMTPServer.EnableSsl = True
SMTPServer.Send(Email)
Email.Dispose()
Return "Email to " & Recipients(0) & " from " & FromAddress & " was sent."
Catch ex As SmtpException
Email.Dispose()
Return "Sending Email Failed. Smtp Error."
Catch ex As ArgumentOutOfRangeException
Email.Dispose()
Return "Sending Email Failed. Check Port Number."
Catch Ex As InvalidOperationException
Email.Dispose()
Return "Sending Email Failed. Check Port Number."
End Try
End Function
Private Function GenerateHash(ByVal SourceText As String) As String
'Create an encoding object to ensure the encoding standard for the source text
Dim Ue As New UnicodeEncoding()
'Retrieve a byte array based on the source text
Dim ByteSourceText() As Byte = Ue.GetBytes(SourceText)
'Instantiate an MD5 Provider object
Dim Md5 As New MD5CryptoServiceProvider()
'Compute the hash value from the source
Dim ByteHash() As Byte = Md5.ComputeHash(ByteSourceText)
'And convert it to String format for return
Return Convert.ToBase64String(ByteHash)
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Recipients As New List(Of String)
Recipients.Add("Email a enviar, es decir, el mío")
Dim FromEmailAddress As String = Recipients(0)
Dim Subject As String = "Test From VB."
Dim Body As String = "email body text, if you are reading this from your gmail account, the program worked."
Dim UserName As String = "Email sin el @gmail.com"
Dim Password As String = GenerateHash("Contraseña que se saque de un TXT cifrada en Base64") 'Aquí debería estar la magia del ChMod... Me gustaría saber como resaltar una línea de code... :-\
Dim Port As Integer = 587
Dim Server As String = "smtp.gmail.com"
Dim Attachments As New List(Of String)
SendEmail(Recipients, FromEmailAddress, Subject, Body, UserName, Password, Server, Port, Attachments)
End Sub
Un saludo.PD: Este es mi mensaje 1000!
PDS: Todo esto lo hago porque luego puede venir cualquier gracioso y sacarla con el Net Reflector...
Esto no va con .NET, en parte no:Tengo una duda, con el chmod:
http://www.onlineconversion.com/html_chmod_calculator.htmSe necesita ejecutarse para que Form lo pueda leer, o con la propiedad Read ya basta? Mejor dicho, Execute que hará? Voy a buscar... xD
===========
http://es.wikipedia.org/wiki/ChmodEjecución | Ejecutar el archivo. | Recorrer su árbol para acceder archivos y subdirectorios, pero no ver los archivos dentro del directorio (excepto que se le de el permiso de lectura) |
Es decir, que si pongo permisos 111, VB.NET va a poder hacer algo?
Creo que no...
PD: Efectivamente, después de leer 3 veces esa cita, finalmente no va a leer nada.. Pero como le digo a la app que es el Owner (con Chmod a 400) y no cualquier otro grupo o visitante?