在GoDaddy上通过gmail SMTP发送电子邮件

时间:2009-08-03 23:25:16

标签: c# .net smtp

这可能吗?我可以通过localhost发送,但在godaddy上,电子邮件不会被发送。有没有人设法实现这个目标?

我正在使用C#

12 个答案:

答案 0 :(得分:14)

看来GoDaddy会阻止gmail的smtp访问所需的SSL端口。这意味着你现在运气不好。你可以使用GoDaddy的本地继电器:

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

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

答案 1 :(得分:11)

我可以使用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中拥有电子邮件帐户,您可以登录并访问产品&gt;进行检查。电子邮件&gt;电邮计划。您还必须确保打开SMTP中继,默认情况下它已打开。同样重要的是,默认情况下我的GoDaddy帐户只允许我每天发送250封电子邮件。

答案 2 :(得分:5)

我正在使用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
}

答案 3 :(得分:4)

这似乎是一个常见问题。

需要做两件事。

  • 添加将用于身份验证的用户。您无法通过GoDaddy匿名发送
  • 按照此处指定的配置进行操作。

这应该使它正常工作。

答案 4 :(得分:3)

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

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

答案 5 :(得分:2)

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

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

使用relay-host

还有另一种选择

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

此替代方案可用于在所有网络表单中发送预先指定的“表单邮件”电子邮件帐户,并且确实有效!但确实需要在GoDaddy上设置一些hosting.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收到一封电子邮件,其中包含必填表格字段数据,但无论您如何进行,您的主机提供商的安全设置最终将决定您执行此操作的能力。

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

答案 6 :(得分:2)

我上一次尝试这样做(可能是2011年初),我无法以编程方式从GoDaddy的Gmail帐户发送出去。我将代码与在不同托管公司的服务器上运行的代码完全相同,并且在GoDaddy的服务器上失败了,因此我非常确信代码不是问题。

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

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

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

同样,这是不久之前我遇到过这个问题但是很容易检查他们是否仍然允许你使用他们的SMTP服务器发送电子邮件。

答案 7 :(得分:0)

这里几乎忘了googles的详细说明。上述工具将自动更改8 - )

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

答案 8 :(得分:0)

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

答案 9 :(得分:0)

本守则有效

// 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);

答案 10 :(得分:0)

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

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

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

答案 11 :(得分:0)

我正在尝试类似的事情,只是重置电子邮件和注册电子邮件,必须将$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";