Solved

Open Default Email and populate Message with Text from VB.NET

Posted on 2004-08-19
8
345 Views
Last Modified: 2006-11-17
Hi Experts!

I need a button in an ASP.NET web app that when clicked will open the users default mail application and populate the body of the email message with text from the current webform.. anydirection on how do do this will be greatly appreciated
thanks ;)
0
Comment
Question by:jcraun
  • 4
  • 3
8 Comments
 
LVL 28

Expert Comment

by:iboutchkine
ID: 11844380
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
If Not IsPostBack Then
Me.Button1.Text = "Send Mail"
Me.Button1.Attributes("onClick") =
"window.location='mailto:bla@bla.com?subject=Iouri demo&body=bla bla bla';"
End If
End Sub
0
 

Author Comment

by:jcraun
ID: 11844568
Neat thanks!.. okay... so what if I need the body of the message to be a concatention of the input of several textboxes from the form that the send email button is on?
0
 
LVL 28

Expert Comment

by:iboutchkine
ID: 11844927
In this case instead of
...body=bla bla bla';"
use
...body=" & txt1.text & " " & txt2.text & "';"
0
Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

 

Author Comment

by:jcraun
ID: 11845764
Okay getting closer.... Only problem is:

1. how do you format the body?
I tried
body=" & txt1.text & " <br> " & txt2.text & "';"
and I got:   bob <br> nancy
instead of:
bob
nancy

2. Is there any way to get this to work when it is not in the Page Load event because the user needs to fill out the form/textboxes and then submit the email..

Thanks for your patience!
0
 
LVL 28

Accepted Solution

by:
iboutchkine earned 500 total points
ID: 11846015
it's either
body=" & txt1.text & "  " & txt2.text & "';"  ' to have space between txtboxes
or
body=" & txt1.text & Environment.NewLine  & txt2.text & "';"

2. It is not in Page load event. In Page Load event you only attach an atribute to the button click event. It will work on Button1_Click event

Another Approach is to register the JS under the button clcik event

   Me.RegisterStartupScript("key", _
  "<script language='javascript'>window.location=mailto:bla@bla.com?subject=Iouri demo&body=bla bla bla';"</script>")

0
 

Author Comment

by:jcraun
ID: 11846654
I think I could eventually make that way work but I am not very familiar w/JS and I need a lot of formatting in the email such as bold, and line breaks etc... and these are long emails.....

here is and example of the way I have been sending emails.. but if I could just make it Display rather than send would be my best option. Do you know how to do it this way? Or what I would have to add?

******************************************************************************************
            Dim genfunc As New GeneralFunctions()
            Dim name As String
            name = genfunc.GetFname(ddlOwner.SelectedItem.ToString)
             strEmailrecip = genfunc.GetEmail(strOwner)

            'send an email when message is submitted
            Dim mailMessage As System.Web.Mail.MailMessage = New System.Web.Mail.MailMessage()
            mailMessage.From = "do_not_reply@test.com"
            mailMessage.To = strEmailrecip
            mailMessage.Subject = "New Crit_Sit Task submitted"
            mailMessage.BodyFormat = System.Web.Mail.MailFormat.Html
            mailMessage.Body = "<font face=arial size=2>"
            mailMessage.Body &= strMessage & "<br><br><br>"
            mailMessage.Body &= strMessage1 & "<br>"
            mailMessage.Body &= "<b>" + "Task Description:" + "</b>" + "<br>"
            mailMessage.Body &= txtTaskDescription.Text + "<br>"
            mailMessage.Body &= "<b>" + "Due Date:" + "</b>" + "<br>"
            System.Web.Mail.SmtpMail.SmtpServer = "test.test.com"
            System.Web.Mail.SmtpMail.Send(mailMessage)
0
 
LVL 28

Expert Comment

by:iboutchkine
ID: 11850779
WHat you are doing is absolutely different from what you asked. YOur code sends SMTP email, that runs as Default SMTP server on your server. Server will be sending email, not a client
You asked to open the default email client on th eclient machine
Both approaches are good and you have to decide which one you prefer
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Suggested Solutions

Today I had a very interesting conundrum that had to get solved quickly. Needless to say, it wasn't resolved quickly because when we needed it we were very rushed, but as soon as the conference call was over and I took a step back I saw the correct …
A long time ago (May 2011), I have written an article showing you how to create a DLL using Visual Studio 2005 to be hosted in SQL Server 2005. That was valid at that time and it is still valid if you are still using these versions. You can still re…
Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.

760 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

15 Experts available now in Live!

Get 1:1 Help Now