1

localhost で電子メールを送信できないのはなぜですか? 次のエラーが表示されます: SMTP ホストが指定されていません

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {

            System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage("fromEmail@email.com","toEmail@email.com", "Test", "Test Body");
            System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();

            client.Send(mail);

        }
    }
}
4

2 に答える 2

2

「localhost」でメールを送信したいと仮定します

試してみてください:

System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient("localhost", 25);

そうでない場合:

メール サーバーが localhost にない場合は、smtp クライアントのipAddress またはホスト名と smtp サービスポートを指定します。

編集: gmail でメールを送信するコードの例を次に示します。

SmtpClient clientesmtp = GetSmtpClient();
MailMessage msg = new MailMessage("from@gmail.com", "to@gmail.com", "Subject","body");
msg.IsBodyHtml = true;
clientesmtp.Send(msg);           

private static SmtpClient GetSmtpClient()
{
SmtpClient clientesmtp = new SmtpClient("smtp.gmail.com", 587);
clientesmtp.Credentials = new System.Net.NetworkCredential("user", "password");
clientesmtp.EnableSsl = true;
return clientesmtp;
}
于 2012-11-14T09:48:22.310 に答える
1

デフォルトでは、SMTPClientはアプリケーションまたは machine.config ファイルで定義されたホストとポートを使用します。<mailSettings>

このコンストラクターは、アプリケーションまたはコンピューターの構成ファイルの設定を使用して、新しい SmtpClient の Host、Credentials、および Port プロパティを初期化します。

それらデフォルトは. _ ただし、machine.config を編集してそのホストを削除した可能性があります。localhost:25

application.config または machine.config を編集して、適切な mailSettings 属性を含めるか、コードで適切な値を指定することができます。

当然、SMTP サーバーを実際に localhost で実行する必要がありますが、あなたの質問から私はあなたがそうしていると思いますか?

于 2012-11-14T09:53:10.113 に答える