Thursday, August 31, 2006

Enviar mensagem com imagem no (Body) por Email...

Pois é, em vez de enviar anexos com imagens é possivel enviar através do corpo da mensagem do E-mail uma imagem.
Para isso está um pequeno codigo a demostrar.

Codigo:
Imports System.Net.Mail

Dim fromAddress As String = "XXXXX@mail.com"
Dim toAddress As String = "YYYYY@mail.com"
Dim subject As String = "Teste com imagem no body"
Dim contentId As String = "image1"
Dim filename As String = "c:\image001.jpg"
Dim body As String = "Aqui está o link para o recurso: "<"img src=""cid:image1""/>"

Dim mailMessage As New MailMessage(fromAddress, toAddress)
mailMessage.Subject = subject
Dim av1 As AlternateView
av1 = AlternateView.CreateAlternateViewFromString(body, Nothing, MediaTypeNames.Text.Html)
Dim linkedResource As LinkedResource = New LinkedResource(filename)
linkedResource.ContentId = contentId
linkedResource.ContentType.Name = filename
av1.LinkedResources.Add(linkedResource)
mailMessage.AlternateViews.Add(av1)
mailMessage.IsBodyHtml = True
Dim mailSender As New SmtpClient("servidor")
Try
mailSender.Send(mailMessage)
Response.Write("mensagem enviada!")
Catch ex As Exception
Response.Write(ex.Message)
End Try

Thursday, August 17, 2006

Tratamento de texto em relação a moeda (currency)

Quando se pretende formatar a moeda como texto o VS tem metodos formatar o valor que recebemos em Double e transformar em moeda, mas tambem é possivel definirmos exactamente o formato que se pretende.
No exemplo 1 é definido uma formatação de texto de como o resultado final irá sair.
No exemplo 2 utilizamos o formato "c" de currency que ira pegar no valor double e dar-lhe o formato em moeda da cultura vigente.
É preciso referir que o resultado final da moeda depende da culture que se esteja a ser utilizada no momento se estiver-mos na cultura americana o resultado nao será "€" euro, mas sim "$" dolar.

Exemplo 1:
total.Text = String.Format(String.Format("{0:£#,##0.00;(£#,##0.00);Nothing}", CDbl(value.Text)))

output: £124,14

Exemplo 2:
total1.Text = String.Format(String.Format("{0:c}", CDbl(value.Text)))

output: 124,14 €

Monday, August 14, 2006

Adicionar ou remover permissões de ficheiros ou directorios ACL (Access Control List)

Estava a explorar o msdn2 a procura de como controlar o acesso a pastas e ficheiros e encontrei este site onde explica como se adiciona ou remove as permissoes, Site.

No exemplo que eles dão, eles criaram um metodo:
AddFileSecurity(fileName, "DomainName\AccountName", _
FileSystemRights.ReadData, AccessControlType.Allow)
onde e definido o ficheiro a ser trabalhado, o utilizador que podera aceder, dando-lhe permissao de escrita.

Tuesday, August 08, 2006

Desenhar atraves de GDI um SMILE

Pois é o ASP.net e uma ferramenta tao pratica que todos os dias uma pessoa aprende sempre coisas novas, nunca podemos dizer que ja sabemos tudo, porque os utilizadores encontram sempre maneiras de complicar a vida, devemos ter a resposta, sim claro... com ajuda do msdn2 e um pouco de arte conseguimos fazer tudo.

criar a class onde sera desenhado o smile.

Imports System.Web
Imports System.Drawing
Imports System.Drawing.Text
Imports System.Drawing.Imaging
Imports System
Namespace imagem
Public Class novaimagem
Implements IHttpHandler
Public ReadOnly Property IsReusable() As Boolean _
Implements IHttpHandler.IsReusable
Get
Return True
End Get
End Property
Public Sub ProcessRequest(ByVal context As HttpContext) _
Implements IHttpHandler.ProcessRequest
Dim bm As New Bitmap(101, 101)
Dim gr As Graphics = Graphics.FromImage(bm)
gr.FillEllipse(Brushes.Yellow, 0, 0, 99, 99)
gr.DrawEllipse(Pens.Black, 0, 0, 99, 99)
gr.DrawArc(Pens.Black, 20, 20, 60, 60, 0, 180)
gr.FillEllipse(Brushes.Black, 40, 40, 20, 25)
gr.FillEllipse(Brushes.White, 25, 15, 20, 25)
gr.DrawEllipse(Pens.Black, 25, 15, 20, 25)
gr.FillEllipse(Brushes.Black, 35, 20, 10, 15)
gr.FillEllipse(Brushes.White, 55, 15, 20, 25)
gr.DrawEllipse(Pens.Black, 55, 15, 20, 25)
gr.FillEllipse(Brushes.Black, 65, 20, 10, 15)
context.Response.ContentType = "image/GIF"
bm.Save(context.Response.OutputStream, ImageFormat.Gif)
End Sub
End Class
End Namespace

Inserir no Web.config:
system.web>
httpHandlers>
add verb="*" path="Imagem.ashx" type="imagem.novaimagem"/>
/httpHandlers>


Sendo chamado pelo Botao:

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Image1.ImageUrl = String.Concat("Imagem.ashx")
End Sub

Depois de clicar no botao ira aparecer um smile :) :).