3

asp.net で SMTP を使用して電子メールを送信しようとしています。次のコードは機能しません。

public string send_email(string name, string email, string message)
{
    var fromAddress = email;
    var toAddress = "ashish_sharma307@hotmail.com";
    string subject = "Feedback";
    string body = "From: " + name+ "\n";
    body += "Email: " + email + "\n";
    body += "Subject: " + subject + "\n";
    body += "Question: \n" + message + "\n";
    // smtp settings
    var smtp = new System.Net.Mail.SmtpClient();
    {
        smtp.Host = "smtp.live.com";
        smtp.Port = 587;
    }
    smtp.Send(fromAddress, toAddress, subject, body);


    return "Your query has been submitted.";
}

これは期待どおりに機能していません。フィードバック フォームからメールを送信しようとしています。

4

1 に答える 1

0

これを回答に入れると、読みやすくなります。

あなたのコメントへの回答として、資格情報なしでサーバーを介して送信するメールメッセージを次に示します。

任意のアドレスから誰にでもメールを送信できます。

ただし、電子メールが目的の場所に到達するとは限らないことに注意してください。メール フィルタは、多くの場合、そのドメインの SPF レコードに追加されていない SMTP サーバーからのメールを拒否します。

MailMessage m = new MailMessage();

m.From = new MailAddress("Smith@MyDomain.com");
m.To.Add(new MailAddress("someone@TheirCompany.com));
m.Subject = "Message from Smith";
m.Body = "Hello, Test Message";
SendEmail(m);

var smtp = new SmtpClient
{
Host = "localhost",
Port = 25,
UseDefaultCredentials = false,                    
};

smtp.Send(m);

これは、SMTP サーバーがセットアップされていると仮定して、ローカル マシン経由で送信するためのものです。

メールの送信には非常に多くの変数とオプションがあり、それぞれに独自の制限があります。

オプション

  1. 独自の SMTP サーバーをセットアップして実行する
  2. サードパーティを使用して、 Campain Monitorなどの電子メールを送信します- 他のプロバイダーがあります
  3. 会社のドメインからのみ送信しており、Exchange メールを使用している場合は、そのサーバーを使用してください
于 2013-07-29T05:45:47.520 に答える