Отправка почтовых сообщений
Вступление
Помните: рассылка спама и других сообщений, которые могут быть приняты за спам,
запрещена. Для того, чтобы оградить себя и других пользователей хостинга от
проблем и недоразумений, ознакомьтесь со следующими документами:
Общая идея отправки
- Обратный адрес письма (поле FROM) должен быть зарегистрированным ящиком или псевдонимом на нашем хостинге. Иначе письмо не дойдет.
- У вас почта где-то еще (gmail.com и так далее)? Создайте бесплатную пересылку (псевдоним) имя@домен-на-хостинге -> ваш-ящик@gmail.com (или аналогично), после этого
отправка от ящика имя@домен-на-хостинге будет работать.
- Для PHP работает стандартная функция mail(), ничего настраивать не нужно, кроме обратного адреса по схеме выше.
- Для других языков программирования или систем, нужно использовать SMTP сервер robots.1gb.ua, порт 25, без авторизации.
- Примеры для популярных языков программирования приведены далее.
Общие замечания
Часто допускаемой ошибкой является создание сообщений с большой длиной строк.
Такие сообщения могут доходить в искаженном или обрезанном виде.
Особенно часто это правило нарушается при некорректном создании HTML сообщений
- перенос строк там кодируется символами <br>, таким образом,
символы переноса строк в исходном тексте сообщения могут вообще отсутствовать.
Помните, что по MIME и RFC стандартам, которые используются для передачи
почтового сообщения, длина строки сообщения не может превышать 80 символов
(ориентировочно). Вам необходимо вставлять переносы строк искусственно,
если ваше сообщение содержит длинные строки.
Это относится к кодировке сообщения 8bit, когда тело сообщения передается
без кодировки.
В том случае, если тело сообщения кодируется (например, base64), длина итоговых
строк может быть любой, но длина строки, используемый для передачи сообщения
(т.е. содержащая данные в base64) опять же не может превышать 80 символов.
Обратите внимание! Заголовок From должен содержать адрес, существующий в Вашем личном кабинете.
PHP
Вы можете воспользоваться стандартной функцией mail(). Будьте
осторожны и грамотны при конструировании кириллических писем!
Письма робота 1Gb.ua отправляются, например, такой функцией:
function _mail ($from, $to, $subj, $what)
{
mail($to, $subj, $what,
"From: $from
Reply-To: $from
Content-Type: text/plain; charset=windows-1251
Content-Transfer-Encoding: 8bit"
);
}
_mail ('suppart@2gb.ua', 'customer@live.com', 'Привет!', 'Дорогой Андрей, пишу вам письмо.');
^^^^^^^^^^^^^^ заменить на СУЩЕСТВУЮЩИЙ НА ХОСТИНГЕ обратный адрес
Обратите внимание на переводы строк в строковой константе - они
должны присутствовать.
Если вы хотите отправлять HTML письма, вы должны
дописать в константу заголовков вместо строки Content-type
следующую, например, строку:
Content-Type: text/html; charset=windows-1251
PERL
Для отправки почты вы можете воспользоваться модулем Net::SMTP.
Пример скрипта выглядит примерно так:
use Net::SMTP;
$smtp = Net::SMTP->new('robots.1gb.ua');
$smtp->mail('from@me.ua');
$smtp->to('to@him.ua');
$smtp->data();
$smtp->datasend("From: <support\@1gb.ua>\n");
$smtp->datasend("To: <to\@him.ua>\n");
$smtp->datasend("Reply-To: <from\@me.ua>\n");
$smtp->datasend("Content-Type: text/plain; charset=windows-1251\n");
$smtp->datasend("Content-Transfer-Encoding: 8bit\n");
$smtp->datasend("\n");
$smtp->datasend("A simple test message!\n");
$smtp->dataend();
Советуем почитать об этом более подробно в описании PERL-а.
ASP
Важно: Из-за многочисленных технических проблем, недоразумений
и сложностей в работе мы не рекомендуем и не поддерживаем использование
отправки сообщений с помощью CDONTS.
Рекомендуем пользоваться компонентой Persits.MailSender (AspEmail),
которая установлена на всех наших серверах.
Для отправки используйте SMTP сервер robots.1gb.ua.
Пример использования на нашем сервере:
<%
set mm = Server.CreateObject("Persits.MailSender")
mm.Host = "robots.1gb.ua"
mm.From = "support@1gb.ua"
mm.FromName = "1Gb support"
mm.AddAddress "xxxx@1gb.ua"
mm.AddCustomHeader "Content-Type: text/plain; charset=windows-1251"
mm.AddCustomHeader "Content-Transfer-Encoding: 8bit"
mm.Subject = "Тестовое сообщение"
mm.IsHTML = 0
mm.Body = "Тестовое сообщение"
mm.Send
%>
Документацию по этому компоненту можно прочитать
здесь.
ASP .NET
Для отправки используйте SMTP сервер robots.1gb.ua. Вы можете использовать стандартную
функциональность объекта System.Web.Mail:
System.Web.Mail.MailMessage m = new System.Web.Mail.MailMessage();
m.From = from;
m.To = to;
m.Subject = subject;
m.Body = what;
m.BodyFormat = System.Web.Mail.MailFormat.Text;
m.BodyEncoding = System.Text.Encoding.GetEncoding("windows-1251");
System.Web.Mail.SmtpMail.SmtpServer = "robots.1gb.ua";
System.Web.Mail.SmtpMail.Send (m);
Важно: При явной ошибке в адресе или любых других ошибках генерируется исключение
с комментарием 'SendMessage() failed: Could not access 'CDO.Message' object.',
которое не следует воспринимать как общую системную ошибку. Это всего
лишь ошибка при отправке конкретного сообщения.
Где искать информацию
- База знаний хостинга 1Gb.ua
Здесь вы можете найти ответы на часто задаваемые вопросы программирования,
совместимости, использования хостинга.
- 1Gb-Wiki - библиотека различных полезных
документов по хостингу
Наши сотрудники и клиенты составили исчерпывающее описание всех
нюансов хостинга и связанного с ним веб-программирования.
Самые популярные темы для программистов
Хотите стать клиентом нашего хостинга?
Попробуйте наши услуги и сервис.
Тестовый период до 10 дней, регистрация
занимает всего одну минуту.
Будем рады видеть вас нашим клиентом!
|
|
|
|
|
Мы всегда готовы ответить на ваши вопросы!
|
|
|
| | |
|
|
Все способы оплаты услуг хостинга
|