Laden...

über webservice email versenden

Erstellt von s0h0 vor 17 Jahren Letzter Beitrag vor 17 Jahren 4.567 Views
S
s0h0 Themenstarter:in
683 Beiträge seit 2006
vor 17 Jahren
über webservice email versenden

hallo,

ich habe in flash ein kontakt formular gebastelt. jetzt ist es aber ziehmlich doof dass sich beim besucher outlook öffnet und er erst das absenden der email bestätigen muss...

dachte da waehre ein webservice in c# ganz nett...

kann mir vielleicht direkt jemand sagen wie ich es in der hello world schaffe dass eine email versand wird mit dem betreff den ich der asmx beim aufruf übergeb?

public string HelloWorld() {
return "Hello World";
}

oder vielleicht gute quellen?

MfG
s0h0

Eine Null kann ein bestehendes Problem verzehnfachen

S
s0h0 Themenstarter:in
683 Beiträge seit 2006
vor 17 Jahren

ok ich hab nun doch erstmal demit angefangen den service aus aeiner aspx heraus aufzurufen.

nun kommt aber die JS fehlermeldung = "Erlaubnis verweigert"

dateien (default.aspx und service.asmx,service.cs) liegen nebeinanderauf ddem server.

kann mir da jemand helfen please?

viiielen dank

das ist die default.aspx

<html>
<body>
<script language="jscript">

        function btn_click (a, b)
        {
        var xmlRequest;
                var xmlObj = new ActiveXObject("Msxml2.DOMDocument") ;
                var sXml  = "<?xml version=\"1.0\" ?>" ;
                      sXml += "<soap:Envelope "
                      sXml += "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " ;
                      sXml += "xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" " ;
                      sXml += "xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">" ;
                      sXml += "<soap:Body>" ;
                      sXml += "<Add xmlns=\"http://tempuri.org/\">" ;
                      sXml = sXml + "<a>" + a.value  + "</a>" ;
                      sXml = sXml + "<b>" + b.value  + "</b>" ;                      
                      sXml += "</Add></soap:Body></soap:Envelope>"
                
	   // Try to parse the XML string into DOM object 
                xmlObj.loadXML(sXml) ;
                
	   //To see the validated XML string is well-formed 
               // XmlRequest.innerText =  xmlObj.xml  ;
                 document.getElementById('TextBox1').Text = xmlObj.xml;
                
                var xmlHTTP = new ActiveXObject("Msxml2.XMLHTTP") ;
                xmlHTTP.Open ( "Post", "http://localhost/ASP.NET/Service.asmx", false) ;
                xmlHTTP.setRequestHeader("SOAPAction", "http://tempuri.org/Add") ;
                xmlHTTP.setRequestHeader("Content-Type", "text/xml; charset=utf-8" ) ;
                xmlHTTP.Send(xmlObj.xml) ;
               document.getElementById('TextBox1').Text += xmlHTTP.responseText ;
                
                var xmlResponse = xmlHTTP.responseXML ;
             //   answer.innerText = xmlResponse.selectSingleNode("soap:Envelope/soap:Body/AddResponse/AddResult").text ;
        }
</script>

<form runat="server">
        <p>Please input a:<input id="a" name="a"></input></p>
        <p>Please input b:<input id="b" name="b"></input></p>
        <p>
        <input type="button" id="btn"  value="Enter" 
                onclick="btn_click(a, b)"></input>
        </p>
        <p>Answer is 
            <asp:TextBox ID="TextBox1" runat="server" Width="580px"></asp:TextBox></p>
        <hr></hr>
        <p>Request:</p>
        
        <p>Response:</p>
        
        
</form>

</body>
</html>

und das die service.cs

using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;

[WebService(Namespace = "http://microsoft.com/webservices/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
{
    public Service () 
    {
        //Auskommentierung der folgenden Zeile bei Verwendung von Designkomponenten aufheben 
        //InitializeComponent(); 
 
    
    }


    [WebMethod()]
    public int Add(int a, int b)
    {
        return a + b;
    }


    
}

Eine Null kann ein bestehendes Problem verzehnfachen

S
s0h0 Themenstarter:in
683 Beiträge seit 2006
vor 17 Jahren

wenn ich statt

xmlHTTP.Open ( "Post", "http://localhost/ASP.NET/Service.asmx", false) ;

es so mache
xmlHTTP.Open ( "Post", "Service.asmx", false) ;

dann passiert garnix bei klick uf den button...

Eine Null kann ein bestehendes Problem verzehnfachen

S
s0h0 Themenstarter:in
683 Beiträge seit 2006
vor 17 Jahren

xmlHTTP.Open ( "Post", "http://www.l-ang.de/Service.asmx", false) ;
hmmm ok, jetzt gehts mit der vollen url. zumindest fragt er mich beim buttonclick ob ich die informationen abrufen möchte...

aber dann passiert nix weiter. im jscript sag ich doch aber eigentlich dass er mir das in die textbox schreiben soll.
?(

Eine Null kann ein bestehendes Problem verzehnfachen

379 Beiträge seit 2004
vor 17 Jahren

Sag mal warum verwendest du denn dafür Javascript? Warum machst du es nicht direkt im CodeBehind mit C#? Da sparst du dir auch den Umweg mit dem WebService (es sei denn das möchtest du unbedingt so machen).

Es gibt da direkt ne Klasse zum Mailversand.

ciao Anke

S
s0h0 Themenstarter:in
683 Beiträge seit 2006
vor 17 Jahren

hi,

am ende möchte ich dass der webservice von einem flashfilm aufgerufen wird mit einem wert. deshalb der webservice.

javascript habe ich hier deswegen verwendet, weil ich nichts anderes gefunden habe womit ich es erstmal soweit hinbekommen hab...

ja, den mailversand wollte ich von der asmx datei aus vornehmen.

hast du vielleicht ein wenig code für mich wie ich ich der cs datei den service aufrufen und den rückgabe wert ausgeben kann?

oder welche klasse brauche ich dafuer?

danke

Eine Null kann ein bestehendes Problem verzehnfachen

379 Beiträge seit 2004
vor 17 Jahren

Ist der WebService in einem anderen Projekt oder liegt er direkt mit in der Anwendung?

Du kannst einfach eine Instanz der Klasse erzeugen und dann die Methode aufrufen, wenn der Webservice mit in der Anwendung liegt.

S
s0h0 Themenstarter:in
683 Beiträge seit 2006
vor 17 Jahren

hab mir jetzt das zusammengebastelt. aber es kommt imme die fehlermeldung

"'100' ist ein unerwartetes Token. Das erwartete Token ist '"' oder '''. Zeile 20, Position 65.
"

was soll das bedeuten?

die url musste ich verfälschen...

protected void Button1_Click(object sender, EventArgs e)
    {
        
      //  doc.Load(Server.MapPath(@"kontakt.xml"));

        XmlDocument doc = new XmlDocument();


        // xml aus page lesen
        System.Net.WebRequest req = System.Net.HttpWebRequest.Create("http://www.fickmatratze.de/Service.asmx/Add");
        System.Net.WebResponse resp = req.GetResponse();
        XmlDocument xDoc = new XmlDocument();
        StreamReader r = new StreamReader(resp.GetResponseStream());
        xDoc.LoadXml(r.ReadToEnd());
    }

so sieht der service aus:

   public string Add()
    {
        return "silk";
    }

Eine Null kann ein bestehendes Problem verzehnfachen

S
s0h0 Themenstarter:in
683 Beiträge seit 2006
vor 17 Jahren

ja, die files liegen im gleichen verzeichnis.

kannst du mir dass zeigen wie ich das machen kann?

Eine Null kann ein bestehendes Problem verzehnfachen

S
s0h0 Themenstarter:in
683 Beiträge seit 2006
vor 17 Jahren

bist ein schatz

Service sv = new Service();

funktioniert 🙂

Eine Null kann ein bestehendes Problem verzehnfachen