Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Send email with wpf

Tags:

c#

.net

wpf

Hi i am trying to send email in a wpf app but i get stuck; i show my xaml code

 <Grid>
    <Button     Style="{DynamicResource ShowcaseRedBtn}"  CommandParameter="[email protected]" Tag="Send Email" Content="Button" Height="23" HorizontalAlignment="Left" Margin="351,186,0,0" Name="button1" VerticalAlignment="Top" Width="140" Click="button1_Click" />
    <TextBox Height="23" HorizontalAlignment="Left" Margin="92,70,0,0" Name="txtSubject" VerticalAlignment="Top" Width="234" />
    <TextBox AcceptsReturn="True" AcceptsTab="True"   Height="159" HorizontalAlignment="Left" Margin="92,121,0,0" Name="txtBody" VerticalAlignment="Top" Width="234" />
</Grid>

and here in the code behind :

 private void button1_Click(object sender, RoutedEventArgs e)
    {
        Button btn = sender as Button;
        if (btn == null)
            return;
        string url = btn.CommandParameter as string;
        if (String.IsNullOrEmpty(url)) 
            return;
        try
        {
            // here i wish set the parameters of email in this way 
            // 1. mailto = url;
            // 2. subject = txtSubject.Text;
            // 3. body = txtBody.Text;
            Process.Start("mailto:[email protected]?subject=Software&body=test ");
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
        }
    }

my purpose is set the parameters of the email binding the data from the form : // 1. mailto = url; // 2. subject = txtSubject.Text; // 3. body = txtBody.Text;

Do you have any idea how work out this step?

Thanks so much for your attention.

Cheers

like image 200
JayJay Avatar asked Dec 05 '22 23:12

JayJay


1 Answers

You can send mail directly using the System.Net.MailMessage class. Look at the following example from the MSDN documentation for this class:

public static void CreateTimeoutTestMessage(string server)
        {
            string to = "[email protected]";
            string from = "[email protected]";
            string subject = "Using the new SMTP client.";
            string body = @"Using this new feature, you can send an e-mail message from an application very easily.";
            MailMessage message = new MailMessage(from, to, subject, body);
            SmtpClient client = new SmtpClient(server);
            Console.WriteLine("Changing time out from {0} to 100.", client.Timeout);
            client.Timeout = 100;
            // Credentials are necessary if the server requires the client 
            // to authenticate before it will send e-mail on the client's behalf.
            client.Credentials = CredentialCache.DefaultNetworkCredentials;

      try {
              client.Send(message);
            }  
            catch (Exception ex) {
              Console.WriteLine("Exception caught in CreateTimeoutTestMessage(): {0}", 
                    ex.ToString() );              
          }
        }
like image 149
Tim Myers Avatar answered Dec 07 '22 13:12

Tim Myers