2017-11-01 13 views
-2

は、私は次のようでのC#を経由して電子メールを送信しようとした:メールの送信方法(System.Net.Mail)?

System.Net.Mail.SmtpException::失敗メール送信

try { 
       MailMessage message = new MailMessage(); 
       message.To.Add("[email protected]"); 
       message.Subject = "This is the Subject line"; 
       message.From = new MailAddress("[email protected]"); 
       message.Body = "This is the message body"; 
       SmtpClient smtp = new SmtpClient("http://schemas.microsoft.com/cdo/configuration/smtpserver"); 
       smtp.Send(message); 
      } catch (Exception ex) { 
       Response.Write(ex.ToString()); 
      } 

が、私はエラーメッセージが表示されます。 ---> System.Net.WebException:リモート名を解決できませんでした。 'http://schemas.microsoft.com/cdo/configuration/smtpserver' System.Net.ServicePoint.GetConnection(PooledStream PooledStream、 オブジェクトの所有者、ブール非同期、たIPAddress &アドレス、ソケット&でabortSocket 、 ソケット& abortSocket6)で......私はこの前にやったことがない

。どんな助けでも大歓迎です。

+1

? SmtpClientのドキュメントを参照して、そのコンストラクタパラメータが何をするのか調べてみましたか? – CodeCaster

+0

そのURLはXML文書の* schema *を指しています。 URLはサーバーアドレスではなく、サーバー上の何かを指しています。サーバーアドレス(Web、電子メール、FTP、その他)は、IPアドレスまたは完全修飾名のいずれかです。 –

答えて

1

thisによれば、SmtpClientコンストラクタは、スキーマアドレスではなく、メールサーバーのホスト名を引数として受け取ります。電子メールの送信に使用するSMTPサーバーに引数を変更してみてください。あなたがそのURLを使用するのはなぜ

SmtpClient smtp = new SmtpClient("my.mailserver.com"); 

あるいは、CodeCasterが指摘したように、その後、(リンクドキュメントでも詳細な)の代わりにアプリや機械コンフィグ設定を使用しますパラメータなしのコンストラクタを使用

+1

むしろ、サーバーアドレスをハードコードするのではなく、パラメータのないコンストラクタを使用して、アプリケーションまたはマシンの構成のサーバーが使用されるようにします。 – CodeCaster

+0

公正な点、それに応じて編集 – Diado

+0

ありがとう、私は適切なsmtpホスト名に変更しました。 「System.Net.Mail.SmtpFailedRecipientException:メールボックスが利用できません。サーバーの応答は5.7.1 System.Net.Mail.SmtpTransport.SendMail(MailAddress sender、MailAddressCollection受信者、String deliveryNotify、Boolean)でリレーできませんでした。 (System.Net.Mail.SmtpClient.Send(MailMessageメッセージ)at ...)」で、それは何を意味するのでしょうか? – ipid

関連する問題