質問

次の関数は完全に機能します。

    protected void SendWebMailMessage(string DisplayName, string From, string ReplyTo,
        string To, string Subject, string Body, string Attachments)
    {
        System.Web.Mail.MailMessage msg = new System.Web.Mail.MailMessage();
        msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserver",
             "smtpout.secureserver.net");
        msg.Fields.Add(
             "http://schemas.microsoft.com/cdo/configuration/smtpserverport", 25);
        msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusing", 
             2);
        msg.Fields.Add(
             "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", 1);
        msg.Fields.Add(
             "http://schemas.microsoft.com/cdo/configuration/sendusername", From);
        msg.Fields.Add(
             "http://schemas.microsoft.com/cdo/configuration/sendpassword",
             mailpassword);
        msg.To = To;
        msg.From = DisplayName + "<" + From + ">";
        msg.BodyFormat = MailFormat.Html;
        msg.Subject = Subject;
        msg.Body = Body;
        msg.Headers.Add("Reply-To", ReplyTo);
        SmtpMail.SmtpServer = "smtpout.secureserver.net";
        SmtpMail.Send(msg);
    }

ただし、System.Web.Mailは廃止されていることを示すビルド警告が表示され、 System.Net.Mailを使用する必要があること。だから私はSystem.Net.Mailを使って、思いついた 古い関数を置き換える次の関数:

    protected void SendNetMailMessage(string DisplayName, string From, string ReplyTo, 
        string To, string Subject, string Body, string Attachments)
    {
        MailAddress addrfrom = new MailAddress(From, DisplayName);
        MailAddress addrto = new MailAddress(To);
        MailAddress replytoaddr = new MailAddress(ReplyTo);
        System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
        msg.From = addrfrom;
        msg.To.Add(addrto);
        msg.ReplyTo = replytoaddr;
        msg.IsBodyHtml = true;
        SmtpClient smtp = new SmtpClient("smtpout.secureserver.net");
        smtp.Credentials = new NetworkCredential(From, mailpassword);
        smtp.Send(msg);
    }

例外やエラーは表示されませんが、メッセージは送信されません。誰でもできます 私が間違っているかもしれないことを教えてください?事前に感謝します。

役に立ちましたか?

解決

もし私が間違っていなければ...あなたはGoddadyホスティングを使用しています。 私も使っています... SMTPサーバーとして ** relay-hosting.secureserver.net ** があります。 わからない...そのようなことがあるかもしれない...またはコンソールにリレーを設定していない。

他のヒント

上で動作するコードをテストしました。本文と件名のプロパティを追加する必要がありましたが、それらがなくても空のメールが届きました。また、資格情報を提供する場合と提供しない場合の両方を試してみました。両方とも機能しました。

最初は、ホスト文字列を変更しておらず、「メールの送信に失敗しました」というメッセージが表示されて例外を受け取りました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top