1
if (txtEmail.Text != null)
{
    try
    {
        SmtpClient sc = new SmtpClient("localhost", 587);
        sc.Host = "smtp.gmail.com";
        sc.Credentials = new NetworkCredential("MyEmail@gmail.com", 
                                               "MyPassword");
        sc.DeliveryMethod = SmtpDeliveryMethod.Network;
        sc.EnableSsl = true;
        MailMessage mailMessage = new MailMessage();
        mailMessage.From = new MailAddress("MyEmail@gmail.com");
        mailMessage.Subject = "Sending Test";
        mailMessage.Body = "this is a test message your UserName is"
                            + txtUserName.Text;
        mailMessage.IsBodyHtml = true;
        string mailBox = txtEmail.Text.Trim();
        mailMessage.To.Add(mailBox);
        sc.Send(mailMessage);
        lblMessage.Text = "Mail send...";
    }
    catch (Exception ex)
    {
        lblMessage.Text = ex.Message;
    }
}
else
{
    lblMessage.Text = "you should enter your email address";
}

まず、英語が苦手なことをお詫びしますが、C#で電子メールを送信する方法についての記事をたくさん読んで、その方法を知っています...

しかし、私の問題は、テキストボックスに入力された電子メールを送信したい場合です。

(E-mailAddress.text)をMailAddressまたはMailMessage.Addに、

それは私に言う例外を投げました

(パラメーター'addresses'を空の文字列にすることはできません。パラメーター名:addresses)

そして、代わりに「abc@yahoo.com」のような文字列でE-mailAddress.textで満たされたMailAdressまたはMailMessageオブジェクトを表示します。さらに、Eメールを送信することはできません...もしあれば私がとても嬉しいのを手伝ってください

4

2 に答える 2

1

まず私が変わる

txtEmail.Text != null 

!string.IsNullOrEmpty(txtEmail.Text)

次に、私はこのようにしようとします:

mailMessage.To.Add(new MailAddress(txtEmail.Text.Trim()));

それ以外の

string mailBox = txtEmail.Text.Trim();
mailMessage.To.Add(mailBox);

また、無効なアドレスを避けるために、入力された電子メールアドレスを検証する方法を実装します:)

于 2012-12-20T09:56:13.930 に答える
0

以下を確認します。

if (txtEmail.Text.Trim() != String.Empty)

それ以外の

if (txtEmail.Text != null)
于 2012-12-20T09:55:42.370 に答える