3

私は使っているusing System.Net.Mail;

メールを送信する次のコード

MailMessage message = new MailMessage();
        SmtpClient client = new SmtpClient();

        // Set the sender's address
        message.From = new MailAddress("fromAddress");

     // Allow multiple "To" addresses to be separated by a semi-colon
        if (toAddress.Trim().Length > 0)
        {
            foreach (string addr in toAddress.Split(';'))
            {
                message.To.Add(new MailAddress(addr));
            }
        }
      // Allow multiple "Cc" addresses to be separated by a semi-colon
        if (ccAddress.Trim().Length > 0)
        {
            foreach (string addr in ccAddress.Split(';'))
            {
                message.CC.Add(new MailAddress(addr));
            }
        }
        // Set the subject and message body text
        message.Subject = subject;
        message.Body = messageBody;

        // Set the SMTP server to be used to send the message
        client.Host = "YourMailServer";

        // Send the e-mail message
        client.Send(message);

私が提供しているホストのためにclient.Host = "localhost";

これはエラーで落ちます

ターゲット マシンがアクティブに拒否したため、接続できませんでしたsome_ip_address_here

そして私が使うときclient.Host = "smtp.gmail.com";

次のエラーが表示されます

接続先が一定時間後に適切に応答しなかったために接続の試行が失敗したか、接続されたホストが応答しなかったために確立された接続が失敗しました

localhost 経由でメールを送信できません。私を助けてください、私はC#に慣れていないので、私が間違っているコードで私を修正してください..?

4

5 に答える 5

5

これは、gmail 経由でメールを送信するために機能するコードです (コードは、stackoverflow のどこかにあります。これは、次のコードに似ています: Gmail: プログラムでメールを送信する方法):

using (var client = new SmtpClient("smtp.gmail.com", 587)
{
  Credentials = new NetworkCredential("yourmail@gmail.com", "yourpassword"),
  EnableSsl = true
})
{
  client.Send("frommail@gmail.com", "tomail@gmail.com", "subject", message);
}
于 2013-03-17T16:15:01.153 に答える
2

からメールを送信client.Host = "localhost"するには、ローカル SMTP サーバーをセットアップする必要があります。

Google (または独自のローカル SMTP を含むその他の SMTP サーバー) 経由でメールを送信するには、ユーザー名、パスワード、ssl 設定を設定する必要があります。これらはすべて、選択した SMTP サーバーに必要なものであり、これについてはヘルプを読む必要があります。

たとえば、Googleは、SSL、ポート 465 または 587、サーバー、およびユーザー名とパスワードが必要であると言っています。smtp.gmail.com

このすべての値を .config ファイルに割り当てることができます。

<system.net>
  <mailSettings>
    <smtp>
      <network host="smtp.gmail.com" enableSsl="true" port="587" userName="yourname@gmail.com" password="password" />
    </smtp>
  </mailSettings>
</system.net>

または、毎回使用する前にコードで SmtpClient に設定します。

client.Host = "smtp.gmail.com";
client.Port = 587;
client.EnableSSL = true;
client.Credentials = new NetworkCredential("yourname@gmail.com", "password");
于 2013-03-17T16:46:42.720 に答える
1

このコードを<configuration> </configuration>in web.config ファイル内に配置します

<system.net>
<mailSettings>
  <smtp>
    <network host="smtp.gmail.com" enableSsl="true" port="587" userName="youremail@gmail.com" password="yourpassword" />
  </smtp>
</mailSettings>
</system.net>

次にバックエンドコード

MailMessage message = new MailMessage();
message.IsBodyHtml = true;
message.From = new MailAddress("email@gmail.com");
message.To.Add(new MailAddress(TextBoxEadd.Text));
message.CC.Add(new MailAddress("email@gmail.com"));
message.Subject = "New User Registration ! ";
message.Body =  "HELLO";
sr.Close();
SmtpClient client = new SmtpClient();
client.Send(message);

このコードがお役に立てば幸いです。:)

于 2013-03-17T16:30:20.480 に答える
0

この行を使用してください..ポートとホスト名を使用しないでください

LocalClient.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;

于 2015-03-21T10:15:17.650 に答える