メールはローカルで送信しますが、サーバーでは送信しませんか?

このコードはローカルで動作しますが、Godaddyのサーバーにアップロードすると、電子メールは送信されません。なぜそれが彼らのサーバで動作しないのか?私は何を変更する必要がありますか?

try {
    MailMessage mail = new MailMessage();
    SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");

    mail.From = new MailAddress("[email protected]");
    mail.To.Add("[email protected]");
    mail.Subject = "New sign up";
    mail.Body = "New member";

    SmtpServer.Port = 587;
    SmtpServer.Credentials = new System.Net.NetworkCredential("[email protected]", "**Mypass**");
    SmtpServer.EnableSsl = true;

    SmtpServer.Send(mail);
} catch(Exception ex) {
    throw ex;
}
2
あなたは例外を捕まえていますか?
追加された 著者 xxpor,

4 答え

スパム送信者が自分のサービスを使用してスパムを送信しないように、発信SMTP接続をブロックしている可能性があります。取得しているエラーメッセージを確認し、サーバーホストのポリシーを確認する必要があります。

2
追加された
彼らはポート25をブロックしているように見える:-(
追加された 著者 Tom Chantler,
Godaddyはしばらくポート25をブロックしました。 stemkoski.com/godaddy-dedicated-server-hosting-blocks -port-2‌ 5
追加された 著者 Christian Payne,
一定時間後に接続先が正しく応答しなかったか、接続されたホストが74.125.53.109:25に応答しなかったために接続が失敗したため、接続の試行に失敗しました。
追加された 著者 CsharpBeginner,

あなたがGodaddyからホストされているサイトの内部から送信するときに必要なことがいくつかあります。彼らのリレーサーバーを使ってメッセージを送ります(これはあなたのdevマシンからはうまくいかないので、アップロードした後にそれをテストしなければなりません)。 ここにはリレーサーバーの情報です。また、 "差出人"アドレスが同じドメイン内の電子メールであることを確認してください。私は通常、toAddressと同じものを使用します。理由については、こちらをご覧ください。これは必要です。

これは私がGodaddy内部のサイトから送信するために使用しているコードです:

        btnSend.Disabled = true;

        const string serverHost = "relay-hosting.secureserver.net";
        var msg = new MailMessage(toAddress, toAddress);
        msg.ReplyTo = new MailAddress(emailFrom);

        msg.Subject = subject;
        msg.Body = emailBody;
        msg.IsBodyHtml = false;

        try
        {
            var smtp = new SmtpClient();
            smtp.Host = serverHost;
            smtp.Credentials = new System.Net.NetworkCredential("account", "password");
            smtp.Send(msg);
        }
        catch (Exception e)
        {
            //Log the errors so that we can see them somewhere
        }
2
追加された

godaddy smtpサーバーを介して電子メールを送信する必要があります。私は思うより前に、彼らと同じ問題を経験しました。私は彼らが彼らのFAQを通してログインする方法の指示を与えると信じています。

0
追加された

サーバへのsshアクセス権がある場合は、25ポートと465ポートを使用してsmtp.google.comにtelnetしてみてください。タイムアウトが発生すると、特定のIP範囲外のこれらのポートにファイアウォールで接続されている可能性が高くなります。 ポート587はTLS用です。 SSLを使用している場合は、ポート465を試してください。

0
追加された