通过GoDaddy使用Gmail SMTP发送电子邮件

20

这是可能的吗?我可以通过localhost发送电子邮件,但在godaddy上无法发送。有人成功实现了这一点吗?

我正在使用C#。

12个回答

15

看起来GoDaddy屏蔽了Gmail SMTP访问所需的SSL端口,这意味着你现在没有办法。你可以使用GoDaddy本地中继:

relay-hosting.secureserver.net 无需凭据。

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


@Chris的回答中的链接在这里也是相关的。http://help.godaddy.com/article/1073 - ken
谢谢,只需按照以下链接设置配置即可开始工作。谢谢,@jkelley。 <appSettings> <add key="Email_SMTP_client_name" value="relay-hosting.secureserver.net" /> <add key="Email_SMTP_port_number" value="25" /> <add key="Email_UseDefaultCredentials" value="false" /> <add key="Email_EnableSsl" value="false" /> </appSettings> - Mihir

12

我能够通过在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封电子邮件。


1
我通过在邮件设置中添加端口成功向GoDaddy发送了电子邮件。 - Yorro
@CodeBlend 端口="80" - Yorro
那是Godaddy的出站SMTP smtpout.secureserver.net。我尝试了所有的端口80、25、3535,它们在我的本地主机上都能工作,但当我尝试通过他们的共享Web托管运行相同的应用程序代码时,对于端口25,我会收到一个被阻止的端口错误,对于其他的80和3535端口,我得不到任何回答。我与Godaddy技术支持人员交谈,他们说我使用的所有端口都是开放的。它在我的本地主机上可以工作,但在他们的Web托管上不能工作?这真的很令人困惑。 - Jason Luong

5
我正在使用ASP.Net MVC 3在GoDaddy上创建一个简单的联系表格。我希望能够将邮件发送到托管在Google Apps上的账户。这个问题符合我的情况,但仅有这篇GoDaddy帮助文章真正解决了我的问题。希望它能帮助其他人!
文章中的代码示例:
    // 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支持后,他们告诉我所有的电子邮件帐户设置都是正确的。你有什么想法吗? - DigiOz Multimedia
我希望@DigiOzMultimedia你现在已经解决了你的问题,但如果还没有,请问您是否使用gmail.com地址或Google应用程序域。也许您已经在文章中看到了这一点,但来自gmail.com地址的电子邮件不允许在GoDaddy的服务器上使用。 - tryinHard
1
兄弟,你的解决方案对我很有用,只需进行一些小调整,例如我使用了system.net.MailMessage()和oMail.isHTMLbody = true; - iltaf khalid

4

这似乎是一个常见的问题。

有两件事是必需的。

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

这样应该可以正常工作。


1
是的。只要您正确地完成所有操作,它应该可以正常工作。 - Reed Copsey
@jonathanconway:我发布时它还能用。希望他们能尽快修复网站 ;) - Reed Copsey
真的吗?对我来说还是坏的。 “'/'应用程序中的服务器错误。 “找不到存储过程'Nop_SettingLoadAll'。异常详细信息:System.Data.SqlClient.SqlException:找不到存储过程'Nop_SettingLoadAll'。” - Jonathan
12
那个链接现在已失效。 - Capagris
我将链接更改为无效内容。它已成为链接垃圾邮件。 - Chris Johnson
显示剩余2条评论

3

对于仍在寻找答案的人,请尝试以下方法:

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

2
relay-hosting.secureserver.net - Syed Waqas

2
使用Godaddy的中继主机时,电子邮件对象的FROM电子邮件地址必须是Godaddy“白名单”电子邮件。

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

使用GoDaddy表单邮件程序有一个替代方法(Google搜索:“_gdForm / webformmailer.asp”)

可以使用此替代方法将预先指定的“表单邮件程序”电子邮件帐户发送所有Web表单,它确实有效! 但是需要在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收到一封电子邮件,其中包含必要的表单字段数据,但无论您如何进行Host提供商的安全设置都将最终确定您执行此操作的能力。

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


2
我上次尝试这样做是在2011年初左右,当时我无法在GoDaddy的服务器上以编程方式从Gmail帐户发送邮件。我使用了完全相同的代码,并在另一个托管公司的服务器上运行成功,但在GoDaddy的服务器上失败,因此我非常自信代码不是问题所在。
我打电话给他们的技术支持部门并得到了矛盾的信息,但我已经听到足够的信息来让自己相信通过Gmail发送邮件不是GoDaddy服务器上的可靠服务。
他们还给了我一个解决方法,使用他们的网络电子邮件表单,但这完全不适用于我正在开发的项目,并强调了GoDaddy没有完全理解他们所说的内容。
最终,我发现我可以只使用GoDaddy的SMTP服务器,并插入自己的“发件人”地址,这使我能够向任何电子邮件地址发送邮件并欺骗原始电子邮件地址。所以他们限制了合法的电子邮件功能,而是强制你使用一种容易被滥用的系统。
再次说明,这是一段时间以前的事情,但很容易检查他们是否仍允许您使用他们的SMTP服务器发送电子邮件。

0

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

检查你的 web.config 文件,并确保每当你发布网站时,调试属性都设置为 false。如果这个方法对我有效,那么请告诉我它是否对你有效。

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

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";

0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接