Solved

How to introduce the href based mailto link in ASP.NET Code behind(C sharp)

Posted on 2010-09-10
19
1,324 Views
Last Modified: 2012-05-10
I want to incorporate the the mailto link in ASP.NET csharp code behind.
0
Comment
Question by:Ammar Iqbal
  • 11
  • 8
19 Comments
 
LVL 14

Expert Comment

by:existenz2
ID: 33644427
You can create a HtmlAnchor: http://www.w3schools.com/aspnet/control_htmlanchor.asp

and do the following:
HtmlAnchor anchor = new HtmlAnchor();

anchor.Href = "mailto:me@nospam.net";

Page.Controls.Add(anchor);

Open in new window

0
 
LVL 1

Author Comment

by:Ammar Iqbal
ID: 33644543
instead of writing the email address directly with mailto , can i use a string variable which contains this emails. smae is the case with subject and body.
All these three things are stored in the respective string varaibles, i nedd to use them in a hregf based mailto link.
Can you provide me with the  complete syntax in C sharp
0
 
LVL 14

Expert Comment

by:existenz2
ID: 33644559
yes, that's no problem:


string emailAddress = "me@nospam.net";

string subject = "Welcome";

string body = "This is my content";

HtmlAnchor anchor = new HtmlAnchor();

anchor.Href = string.Format("mailto:{0}?subject={1}&body={2}",emailAddress,subject,body);

Page.Controls.Add(anchor);

Open in new window

0
 
LVL 1

Author Comment

by:Ammar Iqbal
ID: 33644632
how to add this control "anchor"  as a link in the ASP.NET page
0
 
LVL 1

Author Comment

by:Ammar Iqbal
ID: 33644639
Should I convert this in to a string and then dispaly it on the ASP.NET page, so user is able to click on the mailto link
0
 
LVL 1

Author Comment

by:Ammar Iqbal
ID: 33644672
I am doing this in the catch exception, if for some how , the email could not be sent because of some firewall issues or dns or smtp settings, then i need to give user option option of mailto linkalongwith the email failed message. but by concatenating  " lbEmailStatus.Text = emailfailed + anchor.HRef;". , iam not getting the hyperlink of mailto, instead the tw ostrings are dispalyed


catch (Exception ex)
                   {
                       System.Console.WriteLine(ex.Message);
                       string emailfailed = "The email could not be sent successfully.The credentials of the newly created users are:  user name:'" + userName + "' password:'" + password + "'";
                        HtmlAnchor anchor = new HtmlAnchor();
                        anchor.HRef= string.Format("mailto:{0}?subject={1}&body={2}",toAddress,subject,body);
                        Page.Controls.Add(anchor);
                        lbEmailStatus.Text = emailfailed + anchor.HRef;
                       lbEmailStatus.CssClass = "validate_error";

                   }
0
 
LVL 14

Expert Comment

by:existenz2
ID: 33644691
You need to create a LiteralControl instead of a Label and then write the html in it directly.
0
 
LVL 1

Author Comment

by:Ammar Iqbal
ID: 33644818
can you give a example
0
 
LVL 1

Author Comment

by:Ammar Iqbal
ID: 33644862
its not working. same results displaying the whole text instead of showing thel ink for mailto. so that       outlok or anyother email client can pop out
I did like this
ASP.NET page
 <tr>
              <td  align="left" colspan="4">
                  <asp:Label ID="lbEmailStatus" runat="server" EnableViewState="false"> </asp:Label>
              </td>
              <td>
             
                <asp:Literal ID="ltmailto" runat="server" EnableViewState="false"></asp:Literal>
              </td>
             
           </tr>
catch()

{
System.Console.WriteLine(ex.Message);
                       string emailfailed = "The email could not be sent successfully.The credentials of the newly created users are:  user name:'" + userName + "' password:'" + password + "'";
                        HtmlAnchor anchor = new HtmlAnchor();
                        anchor.HRef= string.Format("mailto:{0}?subject={1}&body={2}",toAddress,subject,body);
                        Page.Controls.Add(anchor);
                        lbEmailStatus.Text = emailfailed;
                       lbEmailStatus.CssClass = "validate_error";
                       ltmailto.Text = anchor.HRef;
}
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 1

Author Comment

by:Ammar Iqbal
ID: 33644954
The whole string is being displayed like this. i do not want this,Infact I require to display mailto as a link and as a result outlook or any toher email client opens up
"
  mailto:ammar.iqbal@gmail.com?subject=Approval&body=Welcome to T4DC Web Module!
Your Account has been approved.
Please Login with the following credentials
Username :'vegar00'
Password : 'baf0f52'
Don't forget to change your password after signing in.  
"
0
 
LVL 14

Expert Comment

by:existenz2
ID: 33644981
put <a href=" "/> around it and put the mailto: content between the ".
0
 
LVL 1

Author Comment

by:Ammar Iqbal
ID: 33644995
can you give me the exact syntax. i am trying to do it but....
0
 
LVL 1

Author Comment

by:Ammar Iqbal
ID: 33645030
anchor.HRef= string.Format(" <a href=mailto:{0}?subject={1}&body={2},toAddress,subject,body/>");

I am not getting the exact syntax. Can you specify the syntax for me
0
 
LVL 14

Expert Comment

by:existenz2
ID: 33645076
You are mixing up code behind and inline code. What are you using?
0
 
LVL 1

Author Comment

by:Ammar Iqbal
ID: 33645118
i am using the code behind code. i neeed to activate the mail to link form the code behind, not to write direct html on the main .aspx page. that is quite simpe. , and is useful when i need to hard codeemail addresses, subject and body.

But  in my case i do not want to hard code toaddresssubject and body.the to address is dynamic address not a hard coded one.i ma not figuring how to incoroporate <a=href ......   with this
anchor.HRef= string.Format(" <a href=mailto:{0}?subject={1}&body={2},toAddress,subject,body/>");

so that mailto link results inan outlook express window popping
0
 
LVL 14

Expert Comment

by:existenz2
ID: 33645141
Then putting the code below in your code behind, preferably pageload or something similar, should be enough to render the mail address correctly as a href tag in the html and open Outlook. No extra coding required.
string emailAddress = "me@nospam.net";

string subject = "Welcome";

string body = "This is my content";

HtmlAnchor anchor = new HtmlAnchor();

anchor.Href = string.Format("mailto:{0}?subject={1}&body={2}",emailAddress,subject,body);

Page.Controls.Add(anchor);

Open in new window

0
 
LVL 1

Author Comment

by:Ammar Iqbal
ID: 33645172
but this code displays everything in the for mof string, it does not open the outlook window. i do not wnat to invoke this in a page load event. Infact i am doing this in the catch section of my actual sendmail method. When the user fails to send an email because of unknown resons, then i want to provide an additional functionality to then so that they can get an open outlook window, and try to send tan email again thorugh it. this is my intention. for this purpose, i want to associate this anchoe.Href with some label or litral control whose intiialview state is set to false. and which is invoked only when the control enters to the catch section of the original method send email.
0
 
LVL 14

Accepted Solution

by:
existenz2 earned 500 total points
ID: 33645191
A stupid me! I forgot an important part :) I forgot to set the "Title" property, else you won't see anything.
string emailAddress = "me@nospam.net";

string subject = "Welcome";

string body = "This is my content";

HtmlAnchor anchor = new HtmlAnchor();

anchor.Href = string.Format("mailto:{0}?subject={1}&body={2}",emailAddress,subject,body);

anchor.Title = "Sent email";

Page.Controls.Add(anchor);

Open in new window

0
 
LVL 14

Expert Comment

by:existenz2
ID: 33645199
You can also put the full code in the catch, as long as the PreRender event did not fire yet.
0

Featured Post

Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

Join & Write a Comment

For those of you who don't follow the news, or just happen to live under rocks, Microsoft Research released a beta SDK (http://www.microsoft.com/en-us/download/details.aspx?id=27876) for the Xbox 360 Kinect. If you don't know what a Kinect is (http:…
This article is for Object-Oriented Programming (OOP) beginners. An Interface contains declarations of events, indexers, methods and/or properties. Any class which implements the Interface should provide the concrete implementation for each Inter…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.
In this tutorial you'll learn about bandwidth monitoring with flows and packet sniffing with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're interested in additional methods for monitoring bandwidt…

707 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now