Tervehdys,
eli suoraan ongelman ytimeen. Onko mahdollista lahettaa suoraan sivulta sahkopostilla teksti dataa. Elikka sivulleni on repeater:lla tulostettu lista nimia ja se pitaisi saada lahetettya sahkopostilla suoraan siita sivulta nappia painamalla. (tai kun nappia painaa niin mennaan uudelle sivulle jossa on kentat osoitetta ja aihetta varten ja tulostettu nimilista on viesti kentassa.)
Onko tallainen mahdollista?
Kiitos ja kumarrus jalleen kerran!
Moikka mizzou!
voisit lähettää vaikkapa siitä repeater'sta...
<%@ Page Language="VB" %> <%@ import Namespace="System.Web.Mail" %>
PS. jos oikein arvaan, niin NYT alkaa tuleen lisäneuvoja guruilta...
Moikka mizzou!
hieman lyhennelty versio samasta aiheesta...
<%@ Page Language="VB" %> '<%@ Register TagPrefix="wmx" Namespace="..." %> <%@ import Namespace="System.Data" %> <%@ import Namespace="System.Web.Mail" %> <script runat="server"> Sub Page_Load(sender As Object, e As EventArgs) Repeater1.DataSource = SqlDataSourceControl1 Repeater1.DataBind() End Sub Sub Button1_Click(sender As Object, e As EventArgs) Dim emaili As New MailMessage Dim body As String Dim item As RepeaterItem For Each item In Repeater1.Items body += CType(item.Controls(0), DataBoundLiteralControl).Text Next item emaili.To = "jussi.juonio@elisanet.fi" emaili.From = "matti.mainio@kolumbus.fi" emaili.Subject = "Testi" 'emaili.BodyFormat = MailFormat.Text '* 'body = body.Replace("<tr>", "") 'body = body.Replace("<td>", "") 'body = body.Replace("</td>", "") 'body = body.Replace("</tr>", "") '* -------------------------------------------------------- emaili.BodyFormat = MailFormat.Html body = "<html><body><b>" + body + "</b></body></html>" '* '---------------------------------------------------------- emaili.Body = body SmtpMail.SmtpServer = "smtp.kolumbus.fi" SmtpMail.Send(emaili) End Sub </script>
-Nea-
PS. arvasin väärin...
Kiitoksia todella paljon Nea!
Olen paininut taman ongelman kanssa jo jonkin aikaa. Yritin tuossa viikonlopun yli saada Database Mail jutskaa toimimaan mutta ei onnistunut sitten niin millaan.
Tuo eka versio antoi aluksi minulle muutaman virheilmoituksen (syy on minun taalla paassa, ei koodissa) mutta lopuksi paasin niista eroon. Yritan nyt tuota lyhyempaa mallia.
Kiitoksia ja ilmoittelen miten homma etenee.
Tassa jalkinmaisessa koodissa tulee virheilmoitus BODY:STA ja tarkalleen ottaen tasta rivista:
body += CType(item.Controls(0), DataBoundLiteralControl).Text
Sana "body" alleviivaantuu heti kun laitan repeaterin sivulle. Kun kopioin tuon koodin tuosta tyhjalle sivulle niin alleviivaantumista ei tapahdu mutta kun repeaterin laittaa niin heti viiva ilmestyy. Sen viivan description on tallainen: Variable 'body' is used before it has been assigned a value. A null reference exception could result at runtime.
Kuulostaako yhtaan tutulta?
edit... Varkkasin tassa hiukan erillalailla tuota mailin lahetysta eli lisataanpa viela tama minun aspx.vb filu tahan. Talla tavalla errori on aika pitkalle sama enta tuossa Nean jalkimmaisessa koodissa. Nakyyko kenenkaan silmaan jotain joka olis vikana?
Imports System.Net.Mail Imports Microsoft.SqlServer.Server Imports System.Data.SqlClient Partial Class List_emailpractice Inherits System.Web.UI.Page Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Repeater1.DataSource = srcShowItems Repeater1.DataBind() End Sub Protected Sub btnSendEmail_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSendEmail.Click Dim fromEmail As New MailAddress(Membership.GetUser.Email.ToString(), Membership.GetUser.UserName.ToString()) Dim toEmail As New MailAddress(txtEmailTo.Text) Dim message As New MailMessage(fromEmail, toEmail) Dim body As String Dim item As RepeaterItem For Each item In Repeater1.Items body += CType(item.Controls(0), DataBoundLiteralControl).Text Next item message.IsBodyHtml = True body = "<html><body><b>" + body + "</b></body></html>" message.Subject = Membership.GetUser.UserName.ToString() & "'s list." message.Body = body Dim client As New SmtpClient("smtpout.secureserver.net") client.Send(message) End Sub End Class
-mizzou
Moikka mizzou!
Minulla ei tapahdu kuvaamaasi ilmiötä...voisit kokeilla vaihtaa ton 'body +=' tilalle 'body &=' tai
'body = body + ...' tai sit vaan vaihtaa ton 'body' tilalle vaikkapa 'xbody'
Sori ku kesti vastaaminen.. hiukan ollut kiiretta mutta menneempa asiaan. Eli tuo "body" alleviivaantuu ja description on aina sama minka kerroin tuossa edellisessa viestissa. Ei auttanut vaikka vaihdoin bodyn tilalle jonkin muun sanan.. aina se vaan alleviivaantu. Viiva lahtee pois kun en laita repeateria sivulle mutta mistas sen datan sitten ottaa? Pystyyko datan ottamaan suoraan SqlDataSourcesta?
Nythan se tapahtuu seuraavanlaisesti:
Sub Page_Load(sender As Object, e As EventArgs) Repeater1.DataSource = SqlDataSourceControl1 Repeater1.DataBind() End Sub
Elikka voiko tuon Bindin tehda suoraan SqlDataSourcesta?
(Mod. edit: kooditagit)
Aihe on jo aika vanha, joten et voi enää vastata siihen.