【问题标题】:Sending email through gmail SMTP on GoDaddy [closed]通过 GoDaddy 上的 gmail SMTP 发送电子邮件 [关闭]
【发布时间】:2010-11-16 13:00:33
【问题描述】:

这可能吗?我可以通过 localhost 发送,但是在 godaddy 上没有发送电子邮件。有没有人设法做到这一点?

我正在使用 C#

【问题讨论】:

    标签: c# .net smtp


    【解决方案1】:

    GoDaddy 似乎阻止了 gmail 的 smtp 访问所需的 SSL 端口。这意味着你在这一点上不走运。您可以只使用 GoDaddy 的本地中继:

    relay-hosting.secureserver.net 没有凭据。

    http://help.godaddy.com/article/955

    【讨论】:

    • @Chris 答案中的链接也与此处相关。 help.godaddy.com/article/1073
    • 谢谢,只需点击此链接并设置如下配置,它将开始工作。谢谢,@jkelley。
    【解决方案2】:

    我能够使用 web.config 中的这些设置通过 GoDaddy 发送电子邮件:

    <configuration>
        <system.net>
            <mailSettings>
                <smtp>
                    <network 
                        host="smtpout.secureserver.net" 
                        userName="emailaccount@yourdomain.com" 
                        password="****" />
                    <!--
                    As per @Yoro's comment you might have
                    luck including the port number as well
                    -->
                </smtp>
            </mailSettings>
        </system.net>
    </configuration>
    

    还有这段代码:

    var SmtpClient = new SmtpClient();
    SmtpClient.Send("emailaccount@yourdomain.com", "to@whatever.com", "subject", "body");
    

    请注意,我认为您发送的电子邮件中的发件人地址必须来自您的域。我尝试发送来自另一个域的电子邮件并收到错误消息。

    您必须确保您在 GoDaddy 中有一个电子邮件帐户,您可以通过登录并转到产品 > 电子邮件 > 电子邮件计划来检查。您还必须确保 SMTP 中继已打开,默认情况下对我来说已打开。同样重要的是要知道默认情况下,我的 GoDaddy 帐户每天只允许我发送 250 封电子邮件。

    【讨论】:

    • 我可以通过在邮件设置中添加端口来向 GoDaddy 发送电子邮件。
    • @CodeBlend port="80"
    • 那是godaddy出站smtp smtpout.secureserver.net。我已经尝试了所有端口 80、25,3535,它们似乎都可以在我的本地主机上运行,​​但是当我尝试通过它们的共享虚拟主机运行相同的应用程序代码时。我收到端口 25 的阻塞端口错误,而其他 80 和 3535 端口我得到一个无响应的回复。我与godaddy 技术支持人员交谈,他们说我使用的所有端口都是开放的。它适用于我的本地主机,但不适用于他们的虚拟主机?这真是令人困惑。
    【解决方案3】:

    我正在 GoDaddy 上使用 ASP.Net MVC 3 创建一个简单的联系表单。我希望能够将电子邮件发送到托管在 Google Apps 上的帐户。这个问题符合我的情况,但只有这个GoDaddy help article 真正解决了我的问题。希望它可以帮助别人!

    文章中的代码示例:

        // language -- C#
    // import namespace
    using System.Web.Mail;
    
    private void SendEmail()
    {
       const string SERVER = "relay-hosting.secureserver.net";
       MailMessage oMail = new System.Web.Mail.MailMessage();
       oMail.From = "emailaddress@domainname";
       oMail.To = "emailaddress@domainname";
       oMail.Subject = "Test email subject";
       oMail.BodyFormat = MailFormat.Html; // enumeration
       oMail.Priority = MailPriority.High; // enumeration
       oMail.Body = "Sent at: " + DateTime.Now;
       SmtpMail.SmtpServer = SERVER;
       SmtpMail.Send(oMail);
       oMail = null; // free up resources
    }
    

    【讨论】:

    • 我知道你的回复已经有几年了。我遇到了完全相同的问题,由于某种原因,您的代码无法使用 Godaddy 电子邮件帐户为我工作。不过,我可以通过 Gmail 使用相同的代码发送电子邮件,这很奇怪,在联系 Godaddy 支持后,他们告诉我所有的电子邮件帐户设置都是正确的。知道我可能缺少什么吗?
    • 我希望您现在已经解决了您的问题@DigiOzMultimedia,但如果没有,您使用的是 gmail.com 地址还是 Google 应用程序域。也许您已经在文章中看到了这一点,但是 GoDaddy 的服务器上不允许来自 gmail.com 的地址
    • 爱你,你的解决方案对我有用,就像我使用 system.net.MailMessage() 和 oMail.isHTMLbody = true;
    【解决方案4】:

    这似乎是一个常见问题。

    需要做两件事。

    • 添加将用于身份验证的用户。您不能通过 GoDaddy 匿名发送
    • 遵循此处指定的配置。

    这应该可以正常工作。

    【讨论】:

    • 所以可以通过来自 GoDaddy 的谷歌应用程序邮件服务器以编程方式发送邮件)?
    • 是的。只要你做的一切正确,它应该可以正常工作。
    • 您提供的“此处指定的配置”链接给了我 ASP.NET 错误...:-s
    • @jonathanconway:当我发布它时它正在工作。希望他们能尽快修复他们的网站;)
    • 那个链接现在已经死了
    【解决方案5】:

    对于仍在寻找答案的人,试试这个

    smtp.Host = "relay-hosting.secure.net";
    smtp.EnableSsl = false;
    smtp.UseDefaultCredentials = false;
    smtp.Port = 25;
    

    【讨论】:

    • relay-hosting.secureserver.net
    【解决方案6】:

    在 Godaddy 使用中继托管时,来自电子邮件地址的电子邮件对象必须是 Godaddy“白名单”电子邮件。

    他们这样做是为了阻止垃圾邮件发送者劫持帐户

    还有一个使用中继主机的替代方法

    使用 GoDaddy 表单邮件程序,(Google Serach:“_gdForm/webformmailer.asp”)

    此替代方法可用于向所有 Web 表单发送预先指定的“form-mailer”电子邮件帐户,并且确实有效!但确实需要在 GoDaddy 上设置一些 hosts.content.form-mailer。

    看看我是如何使用表单邮件的:

    (唯一要注意的是,它取消了编写订阅/取消订阅 XML 数据库的能力,因为表单数据被发送到这个无法访问的 ASP 文件)所以我最终可能会恢复使用 ASP.NET 中的中继托管

    www.earthed.net.au\News.aspx www.earthed.net.au\Contact.aspx www.earthed.net.au\Support.aspx

    我的最终目标是让来自 joe@blogs.com 的电子邮件进入我的收件箱,其中包含必要的表单字段数据,但无论您采取何种方式,主机提供商的安全设置最终将决定您执行此操作的能力。

    还尝试使用 google 和 hotmail smtp 主机(因为我每个都有一个帐户)和相同的安全限制故事,可能是一个鲜为人知的免费网络电子邮件提供商,其安全设置较低,允许完全中继托管(如果有,请告诉我)

    【讨论】:

      【解决方案7】:

      我最后一次尝试这样做时(可能是 2011 年初),我无法通过 GoDaddy 上的 Gmail 帐户以编程方式发送邮件。我使用的代码与在不同托管公司的服务器上运行的代码完全相同,但它在 GoDaddy 的服务器上失败了,所以我很有信心代码不是问题。

      我打电话给他们的技术支持并得到了相互矛盾的信息,但我听到的足以说服自己通过 Gmail 发送在 GoDaddy 的服务器上肯定不是受支持的服务。

      我还获得了使用他们的网络电子邮件表单的解决方法选项,这完全不是我正在从事的项目可以使用的,并强调了 GoDaddy 不完全理解他们在说什么的概念。

      最后我发现我可以使用 GoDaddy 的 SMTP 服务器并插入我自己的“发件人”地址,这使我可以向任何电子邮件地址发送邮件并欺骗原始电子邮件地址。因此,他们最终锁定了合法的电子邮件功能,并迫使您使用高度滥用的系统。

      再一次,我在不久前遇到了这个问题,但很容易检查他们是否仍然允许您使用他们的 SMTP 服务器发送电子邮件。

      【讨论】:

        【解决方案8】:

        我认为你最好的选择是寻找另一个主机。当我在 godaddy 上为一个网站编写代码时,我记得问过 godaddy 他们是否禁用了他们的 mapi 功能,结果发现他们做的不仅仅是禁用它。我听说他们过滤特定的传出端口。

        【讨论】:

          【解决方案9】:

          差点忘了这里是谷歌的详细说明。上面的工具会自动改变 8-)

          http://www.google.com/support/a/bin/answer.py?hl=en&answer=33353

          【讨论】:

            【解决方案10】:

            此代码有效

            // Create the msg object to be sent
            
            MailMessage msg = new MailMessage();
            // Add your email address to the recipients
            msg.To.Add("mr@soundout.net");
            // Configure the address we are sending the mail from
            MailAddress address = new MailAddress("mr@soundout.net");
            msg.From = address;
            msg.Subject = txtSubject.Text;
            msg.Body = txtName.Text + "n" + txtEmail.Text + "n" + txtMessage.Text;
            
            SmtpClient client = new SmtpClient();
            client.Host = "relay-hosting.secureserver.net";
            client.Port = 25;
            
            // Send the msg
            client.Send(msg);
            

            【讨论】:

              【解决方案11】:

              在遇到您在问题中描述的相同问题后,我终于找到了解决方案。

              检查您的 web.config 文件并确保在您发布网站时将 debug 属性设置为 false。让我知道这个是否奏效。它对我有用。

              <configuration>
                <system.web>    
                  <compilation debug="false" targetFramework="4.5" />
                  <httpRuntime targetFramework="4.5" />
                  <customErrors mode="Off"/>
                </system.web>      
              </configuration>
              

              【讨论】:

                【解决方案12】:

                我正在尝试类似的东西,刚刚收到重置电子邮件和注册电子邮件,必须将 $header 更改为 noreply@zzz.com 以匹配网站地址。不需要SMTP,只需要很长时间才能收到电子邮件....仍在进行中。

                            $subject = "Please reset your password";
                            $message = " Here is your password reset code {$validation_code}
                
                             Click here to reset your password http://www.zzz.com/Login_App/code.php?email=$email&code=$validation_code
                            ";
                
                            $headers = "From: noreply@zzz.com";
                

                【讨论】:

                  猜你喜欢
                  • 2017-05-12
                  • 2020-02-21
                  • 1970-01-01
                  • 2014-01-04
                  • 2016-01-16
                  • 2015-10-09
                  • 2011-08-11
                  • 2022-08-14
                  • 2018-01-09
                  相关资源
                  最近更新 更多