Я использую этот метод, чтобы отправить свою электронную почту ... обратите внимание, что это не специально для Outlook, ... он будет использовать в зависимости от того программное обеспечение по умолчанию программа электронной почты, которая устанавливается на компьютер пользователя:
public bool SendEmail(List<string> toAddresses, List<string> ccAddresses, string fromAddress, string emailSubject, string emailBody, bool isBodyHtml)
{
MailMessage email = new MailMessage();
email.From = new MailAddress(fromAddress);
foreach (string address in toAddresses) email.To.Add(new MailAddress(address));
foreach (string address in ccAddresses) email.CC.Add(new MailAddress(address));
email.BodyEncoding = Encoding.UTF8;
email.IsBodyHtml = false;
email.Subject = emailSubject;
email.Body = emailBody;
email.Priority = MailPriority.Low;
SmtpClient smtpClient = new SmtpClient(Settings.Default.DefaultEmailServerPath);
smtpClient.Credentials = new NetworkCredential(Settings.Default.EmailNetworkCredentialUserName, Settings.Default.EmailNetworkCredentialPassword, Settings.Default.EmailNetworkCredentialDomain);
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.Host = Settings.Default.DefaultEmailServerPath;
smtpClient.UseDefaultCredentials = true;
try { smtpClient.Send(email); }
catch { return false; }
return true;
}
Обратите внимание, что я перегружен методы для этого, так что это один имеет все опции в нем ... вы можете свободно удалить несколько строк Если вы предпочитаете. Существует также ярлык способ отправки по электронной почте:
System.Diagnostics.Process.Start("mailto:[email protected]");
В принципе, я хотел бы добавить, либо HyperLink
контроля, или Button
, который имеет Command
в ваш пользовательский интерфейс, а затем вызывать этот код из обработчика. Вы можете узнать больше об элементе управления HyperLink
на странице Hyperlink class в MSDN и есть хороший пример, найденный в this post.
UPDATE >>>
Вы действительно должны привести примеры кода ... Я понятия не имею, как вы настроили ваш TextBox
, будь то обязательные или нет, имена параметров и так далее. Таким образом, я могу только сделать предположения, что вам придется относиться к вашему собственному коду.
Во-первых, добавить Hyperlink
контроль в же место в качестве TextBox
:
<TextBox Grid.Row="0" Grid.Column="1" Name="EmailTextBox" Text="{Binding Email}"
Visibility="{Binding IsValidEmail, Converter={StaticResource
InverseBoolToVisibilityConverter}}" />
<TextBlock Grid.Row="0" Grid.Column="1">
<Hyperlink RequestNavigate="Hyperlink_RequestNavigate">
<TextBlock Text="{Binding Text, ElementName=EmailTextBox}" Visibility="{
Binding IsValidEmail, Converter={StaticResource BoolToVisibilityConverter}}" />
</Hyperlink>
</TextBlock>
Вы видите, основная идея здесь иметь два средства управления разделяют одно местоположение пользовательского интерфейса и «по очереди», чтобы быть видимый в зависимости от значения TextBox
. Поэтому вам нужно добавить свойство bool
(IsValidEmail
в моем примере), которое вы установили в true, когда текстовое значение является действительным адресом электронной почты. Затем BoolToVisibilityConverter
преобразует это истинное значение в Visibility.Visible
для управления Hyperlink
, а InverseBoolToVisibilityConverter
преобразует это ложное значение в Visibility.Collapsed
или Visibility.Hidden
для управления Hyperlink
. Я надеюсь и верю, что вы можете справиться с остальными, поскольку мое время ограничено сегодня.
См. Ответ, предоставленный Sheridan, по ссылке http://stackoverflow.com/questions/18378707/hyperlink-email-address-in-textbox-and-send-it-via-outlook. – DanielXu