【发布时间】:2010-11-16 13:00:33
【问题描述】:
这可能吗?我可以通过 localhost 发送,但是在 godaddy 上没有发送电子邮件。有没有人设法做到这一点?
我正在使用 C#
【问题讨论】:
这可能吗?我可以通过 localhost 发送,但是在 godaddy 上没有发送电子邮件。有没有人设法做到这一点?
我正在使用 C#
【问题讨论】:
GoDaddy 似乎阻止了 gmail 的 smtp 访问所需的 SSL 端口。这意味着你在这一点上不走运。您可以只使用 GoDaddy 的本地中继:
relay-hosting.secureserver.net 没有凭据。
【讨论】:
我能够使用 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 上使用 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
}
【讨论】:
这似乎是一个常见问题。
需要做两件事。
这应该可以正常工作。
【讨论】:
对于仍在寻找答案的人,试试这个
smtp.Host = "relay-hosting.secure.net";
smtp.EnableSsl = false;
smtp.UseDefaultCredentials = false;
smtp.Port = 25;
【讨论】:
在 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 主机(因为我每个都有一个帐户)和相同的安全限制故事,可能是一个鲜为人知的免费网络电子邮件提供商,其安全设置较低,允许完全中继托管(如果有,请告诉我)
【讨论】:
我最后一次尝试这样做时(可能是 2011 年初),我无法通过 GoDaddy 上的 Gmail 帐户以编程方式发送邮件。我使用的代码与在不同托管公司的服务器上运行的代码完全相同,但它在 GoDaddy 的服务器上失败了,所以我很有信心代码不是问题。
我打电话给他们的技术支持并得到了相互矛盾的信息,但我听到的足以说服自己通过 Gmail 发送在 GoDaddy 的服务器上肯定不是受支持的服务。
我还获得了使用他们的网络电子邮件表单的解决方法选项,这完全不是我正在从事的项目可以使用的,并强调了 GoDaddy 不完全理解他们在说什么的概念。
最后我发现我可以使用 GoDaddy 的 SMTP 服务器并插入我自己的“发件人”地址,这使我可以向任何电子邮件地址发送邮件并欺骗原始电子邮件地址。因此,他们最终锁定了合法的电子邮件功能,并迫使您使用高度滥用的系统。
再一次,我在不久前遇到了这个问题,但很容易检查他们是否仍然允许您使用他们的 SMTP 服务器发送电子邮件。
【讨论】:
我认为你最好的选择是寻找另一个主机。当我在 godaddy 上为一个网站编写代码时,我记得问过 godaddy 他们是否禁用了他们的 mapi 功能,结果发现他们做的不仅仅是禁用它。我听说他们过滤特定的传出端口。
【讨论】:
差点忘了这里是谷歌的详细说明。上面的工具会自动改变 8-)
http://www.google.com/support/a/bin/answer.py?hl=en&answer=33353
【讨论】:
此代码有效
// 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);
【讨论】:
在遇到您在问题中描述的相同问题后,我终于找到了解决方案。
检查您的 web.config 文件并确保在您发布网站时将 debug 属性设置为 false。让我知道这个是否奏效。它对我有用。
<configuration>
<system.web>
<compilation debug="false" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
<customErrors mode="Off"/>
</system.web>
</configuration>
【讨论】:
我正在尝试类似的东西,刚刚收到重置电子邮件和注册电子邮件,必须将 $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";
【讨论】: