通过 GoDaddy 上的 gmail SMTP 发送电子邮件 [关闭]
Posted
技术标签:
【中文标题】通过 GoDaddy 上的 gmail SMTP 发送电子邮件 [关闭]【英文标题】:Sending email through gmail SMTP on GoDaddy [closed] 【发布时间】:2010-11-16 13:00:33 【问题描述】:这可能吗?我可以通过 localhost 发送,但是在 godaddy 上没有发送电子邮件。有没有人设法做到这一点?
我正在使用 C#
【问题讨论】:
【参考方案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";
【讨论】:
以上是关于通过 GoDaddy 上的 gmail SMTP 发送电子邮件 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
PHPMailer GoDaddy 服务器 SMTP 连接被拒绝
使用 codeigniter 通过 gmail smtp 服务器发送电子邮件
PHPMailer:使用远程SMTP服务器,在localhost下工作,远程服务器上的Connection refused(111)