Inviare email con Asp.net

giovedì 27 aprile 2006 - 14.59

leandro Profilo | Newbie

Ciao a tutti mi sono ritrovato nel seguente problema e cioè devo inviare delle email dalla mia applicazione fatta in asp.net il mio problema sta nel fatto che nel momento in cui provo a inserire nel testo dei caratteri HTML il server mi da il seguente errore:
Server Error in '/admin' Application.
--------------------------------------------------------------------------------

A potentially dangerous Request.Form value was detected from the client (txt_testo="...ws Letter.<BR>Lo staff di vivi...").
Description: Request Validation has detected a potentially dangerous client input value, and processing of the request has been aborted. This value may indicate an attempt to compromise the security of your application, such as a cross-site scripting attack. You can disable request validation by setting validateRequest=false in the Page directive or in the configuration section. However, it is strongly recommended that your application explicitly check all inputs in this case.

Exception Details: System.Web.HttpRequestValidationException: A potentially dangerous Request.Form value was detected from the client (txt_testo="...ws Letter.<BR>Lo staff di vivi...").

Source Error:

The source code that generated this unhandled exception can only be shown when compiled in debug mode. To enable this, please follow one of the below steps, then request the URL:

1. Add a "Debug=true" directive at the top of the file that generated the error. Example:

<%@ Page Language="C#" Debug="true" %>

or:

2) Add the following section to the configuration file of your application:

<configuration>
<system.web>
<compilation debug="true"/>
</system.web>
</configuration>

Note that this second technique will cause all files within a given application to be compiled in debug mode. The first technique will cause only that particular file to be compiled in debug mode.

Important: Running applications in debug mode does incur a memory/performance overhead. You should make sure that an application has debugging disabled before deploying into production scenario.

La mia applicazione è molto semplice da due campi di testo prende oggetto e il testo dell'email e la invia con il segunete codice:

Sub Btn_prova_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
' Creiamo un'istanza dell'oggetto MailMessage
Dim objMail As New MailMessage
' questo e' il messaggio di default che comparira' a video dopo l'invio
Dim strTemp As String = "Email inviata correttamente"
' Queste sono le proprieta' pricipali che dobbiamo impostare
objMail.From = "info@io.it"
objMail.To = "info@pippo.it"
objMail.Subject = Me.txt_oggetto.Text
objMail.Body = Me.txt_testo.Text
' Queste invece sono opzionali
' impostiamo ad HTML il formato dell'email
objMail.BodyFormat = MailFormat.Html
' il formato di Codifica del messaggio : Base64, UUencode
' objMail.BodyEncoding = MailFormat.Base64
' settiamo ad alta la priorita' del messaggio
objMail.Priority = MailPriority.High
' alleghiamo un file all'email.
' objMail.Attachments.Add(new MailAttachment("c:\file.zip"))
' la riga seguente serve solo se non abbiamo installato
' nel Web Server il servizio Microsoft SMTP
' SmtpMail.SmtpServer = "smtp.provider.it"
Try ' proviamo ad inviare l'email...
SmtpMail.Send(objMail)
Catch Ex As Exception ' si e' verificato un errore
strTemp = "Errore nell'invio: "
' adesso Visual Basic supporta l'operatore di concatenazione del C
strTemp += Ex.Message
End Try
txt_log.Text = Me.txt_log.Text & "Indirizzo = " & "info@pippo.it" & " ---> MAIL INVIATA CON SUCCESSO"
End Sub

qualcuno mi da dare una mano Grazie !!

Brainkiller Profilo | Guru

>Ciao a tutti mi sono ritrovato nel seguente problema e cioè devo
>inviare delle email dalla mia applicazione fatta in asp.net
>il mio problema sta nel fatto che nel momento in cui provo a
>inserire nel testo dei caratteri HTML il server mi da il seguente
>errore:

La soluzione è contenuta nell'errore che ti viene visualizzato, basta leggere.
All'interno della pagina .aspx che invia l'email bisogna impostare il validateRequest a false:

<%@ Page ValidateRequest="false"

Ciao
David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

alx_81 Profilo | Guru

Devi mettere

ValidateRequest="false"

nella direttiva @Page in alto nella pagina in cui compili la email..

ciao!
Alx81 =)

http://blogs.dotnethell.it/suxstellino
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5