Отправка электронной почты через gmail SMTP на GoDaddy
Это возможно? Я могу отправить через localhost, но на Godaddy электронное письмо не отправляется. Кому-нибудь удалось этого добиться?
Я использую C#
12 ответов
Похоже, что GoDaddy блокирует порты SSL, необходимые для доступа SMTP в Gmail. Это означает, что вам не повезло на этом этапе. Вы можете просто использовать локальное реле GoDaddy:
relay-hosting.secureserver.net без учетных данных.
Мне удалось отправить электронное письмо через GoDaddy, используя эти настройки в web.config:
<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 писем в день.
Я создаю простую контактную форму, используя ASP.Net MVC 3 на GoDaddy. Я хотел иметь возможность отправлять электронные письма на аккаунты, размещенные в Службах Google. Этот вопрос соответствовал моей ситуации, но только эта справочная статья 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
- Следуйте конфигурации, указанной здесь.
Это должно заставить его работать правильно.
Для людей, которые все еще ищут ответ, попробуйте это
smtp.Host = "relay-hosting.secure.net";
smtp.EnableSsl = false;
smtp.UseDefaultCredentials = false;
smtp.Port = 25;
При использовании relay-хостинга с Godaddy объектами электронной почты ОТ адреса электронной почты ДОЛЖНЫ быть электронные письма Godaddy с белым списком.
Они делают это, чтобы спаммеры не взломали аккаунт
Есть альтернатива для использования реле-хоста
Использование почтовой программы 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 с необходимыми данными поля формы, но независимо от того, как вы настроитесь, настройки безопасности вашего хост-провайдера в конечном итоге определят вашу способность сделать это.
Также попытался использовать хосты google и hotmail smtp (так как у меня есть учетная запись с каждым) и та же секретная история ограничений, возможно, менее известного бесплатного провайдера веб-почты, который имеет более низкие настройки безопасности, разрешающие полный хостинг (если так, дайте мне знать)
В последний раз, когда я пытался это сделать (возможно, в начале 2011 года), я не смог программно отправить письмо из учетной записи Gmail на GoDaddy. Я взял код точно такой же код, который работал на сервере другой хостинговой компании, и он не работал на сервере GoDaddy, так что я совершенно уверен, что код не был проблемой.
Я позвонил в их службу технической поддержки и получил противоречивую информацию, но услышал достаточно, чтобы убедить себя, что отправка через Gmail не является наверняка поддерживаемой службой на серверах GoDaddy.
Мне также дали вариант обходного пути использования их веб-формы электронной почты, которая совершенно не подходит для проекта, над которым я работал, и подчеркнул, что GoDaddy не полностью понял, о чем они говорят.
В конце концов я обнаружил, что могу просто использовать SMTP-серверы GoDaddy и подключить свой собственный адрес "от", который позволяет мне отправлять почту на любой адрес электронной почты и подделывать исходный адрес электронной почты. Таким образом, они в конечном итоге блокируют законную функциональность электронной почты и вместо этого вынуждают вас использовать систему с высокой степенью злоупотребления.
Опять же, это было недавно, когда я столкнулся с этой проблемой, но было бы достаточно легко проверить, позволяют ли они по-прежнему использовать ваш SMTP-сервер для отправки электронных писем.
После того, как я столкнулся с той же проблемой, которую вы описали в своем вопросе, я наконец нашел решение.
Проверьте файл web.config и убедитесь, что для свойства debug установлено значение false при каждой публикации вашего веб-сайта. Дайте мне знать, если это работает. Это для меня.
<configuration>
<system.web>
<compilation debug="false" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
<customErrors mode="Off"/>
</system.web>
</configuration>
Почти забыл здесь гуглит подробные инструкции. Вышеуказанный инструмент изменится автоматически 8-)
http://www.google.com/support/a/bin/answer.py?hl=en&answer=33353
Я думаю, что ваш лучший вариант - найти другого хозяина. Когда я кодировал сайт для Godaddy, я помню, как спрашивал Godaddy, отключили ли они свои функции mapi, и оказалось, что они делают немного больше, чем просто отключают его. Я слышал, что они фильтруют определенные исходящие порты.
Этот кодекс работает
// 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);
Я пытаюсь что-то подобное, только что получил сброс электронной почты и зарегистрировать электронную почту, пришлось изменить $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";