30. marts 2006 - 17:22
Der er
16 kommentarer og 2 løsninger
Problemer med at lave HTML mailformular
jeg har lavet nedenstående kode i VS2005 men når jeg kører den får jeg følgende fejl: + InnerException {"Asynchronous operations are not allowed in this context. Page starting an asynchronous operation has to have the Async attribute set to true and an asynchronous operation can only be started on a page prior to PreRenderComplete event."} System.Exception {System.InvalidOperationException} det skal siges at den er en weballication. Min kode er som følgende: using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.Data.OleDb; using System.Configuration; using System.Text; using System.Net; using System.Net.Mail; using System.Net.Mime; public partial class Default2 : System.Web.UI.Page { static bool mailSent = false; protected void Page_Load(object sender, EventArgs e) { } public static void SendCompletedCallback(object sender, AsyncCompletedEventArgs e) { // Get the unique identifier for this asynchronous operation. String token = (string)e.UserState; if (e.Cancelled) { Console.WriteLine("[{0}] Send canceled.", token); } if (e.Error != null) { Console.WriteLine("[{0}] {1}", token, e.Error.ToString()); } else { Console.WriteLine("Message sent."); } mailSent = true; } private void sendMail() { //HTML mail //ArrayList skindArrayl = arrList; StringBuilder strb = new StringBuilder(); strb = new StringBuilder(); SmtpClient client = new SmtpClient("smtp.galnet.dk"); MailAddress from = new MailAddress(txtEmail.Text); MailAddress to = new MailAddress("mahyar@galnet.dk"); MailMessage message = new MailMessage(from, to); message.Subject = "Henvendelse vedrører: " + CheckBoxList1.SelectedItem.Value; client.SendCompleted += new SendCompletedEventHandler(SendCompletedCallback); strb.Append("<html><body bgcolor = #fffaf0>"); strb.Append("<Center><h4>Email fra en besøgende</h4></Center><br><br>"); strb.Append("<Center><table border='0' width = 600 bgcolor = #ffcc99 ></Center>"); strb.Append(string.Format("<tr><td><b>Dato:</b></td><td>{0}</td></tr>", DateTime.Now.ToShortDateString())); strb.Append(string.Format("<tr><td><b>Navn</td><td>{0}</td></tr>", txtKontaktperson.Text)); strb.Append(string.Format("<tr><td><b>Kontaktperson</td><td>{0}</td></tr>", txtKontaktperson.Text)); strb.Append(string.Format("<tr><td><b>Adresse</td><td>{0}</td></tr>", txtAdresse.Text)); strb.Append(string.Format("<tr><td><b>Postnr</td><td>{0}</td></tr>", txtPostnr.Text)); strb.Append(string.Format("<tr><td><b>By</td><td>{0}</td></tr>", txtBy.Text)); strb.Append(string.Format("<tr><td><b>Tlf</td><td>{0}</td></tr>", txtTlf.Text)); strb.Append(string.Format("<tr><td><b>Fax</td><td>{0}</td></tr>", txtFax.Text)); strb.Append(string.Format("<tr><td><b>Tlf</td><td>{0}</td></tr>", txtTlf.Text)); strb.Append(string.Format("<tr><td><b>Ønsket dato</td><td>{0}</td></tr>", txtDato.Text)); strb.Append(string.Format("<tr><td><b>Ønsket klokkeslet</td><td>{0}</td></tr>", txtKlokkeslet.Text)); strb.Append(string.Format("<tr><td><b>Fax</td><td>{0}</td></tr>", txtFax.Text)); strb.Append(string.Format("<tr><td><b>Kommentar</td><td>{0}</td></tr>", txtKommentar.Text)); strb.Append("</table><br>"); strb.Append("</body></html>"); message.Body = strb.ToString(); string userState = "test"; try { client.SendAsync(message, userState); } catch (Exception mailException) { Trace.Write(mailException.ToString()); } }
Annonceindlæg fra Computerworld it-jobbank
Mød 3.500+ it-talenter på IT-DAY 2026
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
30. marts 2006 - 17:28
#1
i dit page directive skal du sætte Async="true".
30. marts 2006 - 17:31
#2
Du skal starte mail afsendelse i : protected override void OnPreRender(EventArgs e) { base.OnPreRender(e); sendMail(); }
30. marts 2006 - 17:58
#3
hvorfor ikke bare lave en normal synch send ?
30. marts 2006 - 23:02
#4
hvordan kan jeg lave den om til en synch send?
30. marts 2006 - 23:23
#5
når jeg sætter Async=true på oage directive vil den sende mailen. Men den biver ik sendt som html-formular....den bliver sendt som en textformular....
31. marts 2006 - 03:05
#6
client.Send(message);
31. marts 2006 - 08:02
#7
du skal sætte IsBodyHtml til true: System.Net.Mail.MailMessage Message = new System.Net.Mail.MailMessage(); Message.IsBodyHtml = true;
31. marts 2006 - 13:30
#8
jeg får denne fejl når jeg kører programmet: "Command parameter not implemented. The server response was: <privat-189fd287>: Helo command rejected: need fully-qualified hostname"
31. marts 2006 - 13:31
#9
jeg har også sat IsBodyHtml=true....
31. marts 2006 - 17:19
#10
hvad står der i : txtEmail.Text ?
31. marts 2006 - 18:19
#11
i txtemail.Text, vil der stå afsenderens emailadresse...
31. marts 2006 - 20:21
#12
kaldet sendMail() før der er indtastet noget i feltet ?
01. april 2006 - 17:28
#13
sendMail() kalder jeg med en button. men der bliver ikke sendt nogle mails...
03. april 2006 - 11:33
#14
jeg prøver at sende den som normal synch send med den nedenstående kode. Er der andet jeg også skal gøre? for der bliver ikke sendt noget. private void sendMail() { //HTML mail //ArrayList skindArrayl = arrList; StringBuilder strb = new StringBuilder(); strb = new StringBuilder(); MailAddress from = new MailAddress(txtEmail.Text); MailAddress to = new MailAddress("mahyar@galnet.dk"); MailMessage message = new MailMessage(from, to); SmtpClient client = new SmtpClient("smtp.galnet.dk "); message.Subject = "Henvendelse vedrører: " + CheckBoxList1.SelectedItem.Value; strb.Append("<html><body bgcolor = #fffaf0>"); strb.Append("<Center><h4>Email fra en besøgende</h4></Center><br><br>"); strb.Append("<Center><table border='0' width = 600 bgcolor = #ffcc99 ></Center>"); strb.Append(string.Format("<tr><td><b>Dato:</b></td><td>{0}</td></tr>", DateTime.Now.ToShortDateString())); strb.Append(string.Format("<tr><td><b>Navn</td><td>{0}</td></tr>", txtKontaktperson.Text)); strb.Append(string.Format("<tr><td><b>Kontaktperson</td><td>{0}</td></tr>", txtKontaktperson.Text)); strb.Append(string.Format("<tr><td><b>Adresse</td><td>{0}</td></tr>", txtAdresse.Text)); strb.Append(string.Format("<tr><td><b>Postnr</td><td>{0}</td></tr>", txtPostnr.Text)); strb.Append(string.Format("<tr><td><b>By</td><td>{0}</td></tr>", txtBy.Text)); strb.Append(string.Format("<tr><td><b>Tlf</td><td>{0}</td></tr>", txtTlf.Text)); strb.Append(string.Format("<tr><td><b>Fax</td><td>{0}</td></tr>", txtFax.Text)); strb.Append(string.Format("<tr><td><b>Tlf</td><td>{0}</td></tr>", txtTlf.Text)); strb.Append(string.Format("<tr><td><b>Ønsket dato</td><td>{0}</td></tr>", txtDato.Text)); strb.Append(string.Format("<tr><td><b>Ønsket klokkeslet</td><td>{0}</td></tr>", txtKlokkeslet.Text)); strb.Append(string.Format("<tr><td><b>Fax</td><td>{0}</td></tr>", txtFax.Text)); strb.Append(string.Format("<tr><td><b>Kommentar</td><td>{0}</td></tr>", txtKommentar.Text)); strb.Append("</table><br>"); strb.Append("</body></html>"); message.IsBodyHtml = true; message.Body = strb.ToString(); //client.SendCompleted += new SendCompletedEventHandler(SendCompletedCallback); string userState = "test message1"; try { //client.SendAsync(message, userState); client.Send(message); } catch (Exception mailException) { Trace.Write(mailException.ToString()); } } protected void btnSend_Click(object sender, EventArgs e) { sendMail(); }
03. april 2006 - 17:33
#15
får du nogen fejl ?
03. april 2006 - 21:28
#16
fejlen er nu rettet...der slulle bare den rigtige smtp server på.....kan man dele points her?...for dig og arne v, har været en stor hjælp. Jeg vil meget gerne dele pointene
04. april 2006 - 08:30
#17
vi skal bare lægge et svar begge to også skal du markere begge navne.
04. april 2006 - 13:19
#18
.
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.