6

Godaddy でホストされている ASP.NET アプリケーションから電子メールを送信したいと考えています。実行すると、「メールボックス名が許可されていません」というメッセージが表示されます。サーバーの応答は次のとおりです。申し訳ありませんが、あなたの場所からの中継は拒否されました。コードと Web.config の重要な部分は次のとおりです。

msg = new MailMessage("accounts@greektools.net", email);
        msg.Subject = "GreekTools Registration";
        msg.Body =
            "You have been invited by your organization to register for the GreekTools recruitment application.<br/><br/>" +
            url + "<br/><br/>" +
            "Sincerely,<br/>" +
            "The GreekTools Team";

        msg.IsBodyHtml = true;

        client = new SmtpClient();
        client.Host = "relay-hosting.secureserver.net";

        client.Send(msg);

<system.net>
<mailSettings>
  <smtp from="accounts@greektools.net">
    <network host="relay-hosting.secureserver.net" port="25" userName="********" password="*********" />
  </smtp>
</mailSettings>

4

12 に答える 12

22

1- サイトが godaddy でホストされている場合は、資格情報なしで「relay-hosting.secureserver.net」を使用できます。

2- サイトが Godaddy の外部でホストされている場合は、メール アカウント資格情報で「smtpout.secureserver.net」を使用できます。

PS: 25 に問題がある場合は、ポート 3535 を変更してください。

GoDaddy でホスト

    <system.net>
      <mailSettings>
       <smtp from="abc@xyz.net">
        <network host="relay-hosting.secureserver.net"/>
       </smtp>
      </mailSettings>
    </system.net>

外部の

  <system.net>
    <mailSettings>
      <smtp from="abc@xyz.net">
        <network host="smtpout.secureserver.net" 
           userName="abc@xyz.net" password="your_password_here" 
           port="25" />
      </smtp>
    </mailSettings>
  </system.net>
于 2011-01-04T13:51:37.743 に答える
2

これが私のメールクラスです:

public class Email
{
    public enum MailAddressType
    {
        From = 1,
        Bcc
    }

    private static MailAddress _from = null;

    public static void SendEmail(string to, string subject, string body)
    {
        SendEmail(to, subject, body, From, string.Empty);
    }

    public static void SendEmail(string to, string subject, string body, string from)
    {
        SendEmail(to, subject, body, from, MailAddressType.From);
    }

    public static void SendEmail(string to, string subject, string body, string addresses, MailAddressType addressType)
    {
        MailAddress from = From;
        string bcc = string.Empty;

        if (MailAddressType.From == addressType)
        {
            from = new MailAddress(addresses);
        }
        else
        {
            bcc = addresses;
        }

        SendEmail(to, subject, body, from, bcc);
    }

    private static void SendEmail(string to, string subject, string body, MailAddress from, string bcc)
    {
        MailMessage message = new MailMessage();
        message.From = From;
        message.To.Add(to);
        if (!string.IsNullOrEmpty(bcc))
        {
            message.Bcc.Add(bcc);
        }
        message.ReplyTo = from;
        message.Subject = subject;
        message.Body = HttpContext.Current.Server.HtmlEncode(body);
        SmtpClient smtp = new SmtpClient();
        smtp.Send(message);
    }

    public static MailAddress From
    {
        get
        {
            if (null == _from)
            {
                SmtpSection section = (SmtpSection)ConfigurationManager.GetSection("system.net/mailSettings/smtp");
                string address = section.From;
                string displayName = ConfigurationManager.AppSettings["fromEmailDisplayName"];
                _from = new MailAddress(address, displayName);
            }
            return _from;
        }
    }
}

関連する web.config 設定は次のとおりです。

<appSettings>
    <add key="fromEmailDisplayName" value="Firstname Lastname"/>
</appSettings>

<system.net>
    <mailSettings>
        <smtp deliveryMethod="Network" from="myname@mydomain.com">
            <network host="relay-hosting.secureserver.net" />
        </smtp>
    </mailSettings>
</system.net>

私にとって、キーは「message.From = From」と「message.ReplyTo = from」でした。GoDaddy は、ドメイン内のアドレスからメッセージが送信されることを望んでいるようです。そのため、連絡先ページでは、既定のメール アドレスを From として使用し、送信者を ReplyTo として設定します。その後、メールは正常に送信されます。

于 2010-03-21T21:41:41.170 に答える
0

ASP.NET 3.5コードで使用する必要がある電子メールまたはリレーサーバーは何ですか?

このリレーサーバーのユーザー名とパスワードを指定する必要はありません。

于 2010-03-21T21:50:50.353 に答える
0

設定

defaultCredentials="false"

あなたのネットワーク要素で

     <network host="relay-hosting.secureserver.net" port="25" userName="********" password="*********" defaultCredentials="false" />
于 2009-09-01T13:26:00.510 に答える
0

ホスト名を確認してください。アカウントが mail.greektools.net を使用するように構成されていませんか?これは GoDaddy ウェブホスティングの既定の形式です..

于 2009-09-01T04:07:03.103 に答える
0

テスト用です。ユーザー名とパスワードの値を web.config から削除します。

次に、コードセットで

//call this line, before you call .Send
client.Credentials = CredentialCache.DefaultNetworkCredentials; 
client.Send(msg)
于 2009-09-01T13:32:13.513 に答える
0

電子メールを送信しようとしているマシンがホワイトリストに登録されていない (またはスパムのブラックリストに登録されている) ため、これは SMTP サーバーからの返信である可能性があります。relay-hosting.secureserver.net は GoDaddy サーバーですか、それとも別のネットワーク上にありますか? 電子メールの中継を可能にする GoDaddy サーバーを見つけたいと思うかもしれません。現在、多くの共有ホスティング プロバイダーには制限があると思います。

あなたが使用している SMTP サーバーの種類と、どのようなスパム対策が実施されているかを調べます。管理者は、許可されたホストのホワイトリストに GoDaddy サーバーを追加できる場合があります。アプリケーションがスパマーのプロキシとして使用されないように十分に注意する必要があります。すべての入力を検証して、安全であることを確認してください。

于 2009-09-01T02:07:34.877 に答える
0
var message = new MailMessage();
message.To.Add(new MailAddress("email-address")); 
message.From = new MailAddress("email-address");  
message.Subject = "subject";
message.Body = string.Format("message-body");
message.IsBodyHtml = true;
using (var smtp = new SmtpClient())
{
    smtp.Host = "relay-hosting.secureserver.net";
    smtp.EnableSsl = false;
    smtp.Credentials = CredentialCache.DefaultNetworkCredentials;
    await smtp.SendMailAsync(message);
}
于 2016-03-05T03:48:01.907 に答える
0

GoDaddy に SMTP フォーム メーラーの設定方法を尋ねたところ、リレー サーバーを使用する必要があるとのことでした。ユーザー名もパスワードもポートもありません。使用するサーバー名は、使用した名前と同じです。

于 2009-11-03T21:31:30.223 に答える