Відправка поштових повідомлень
Вступ
Пам'ятайте: розсилка спаму та інших повідомлень, які можуть бути прийняті за спам, заборонена. Для того, щоб захистити себе і інших користувачів хостингу від проблем і непорозумінь, ознайомтеся з наступними документами:
Загальна ідея відправки
- Зворотня адреса листа (поле 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 днів, реєстрація
займає всього одну хвилину.
Будемо раді бачити вас нашим клієнтом!
Зміст технічної документації
|
|
|
|
|
Ми завжди готові відповісти на Ваші запитання!
|
|
|
| | |
|
|
|
|
Зверніться за допомогою
та підтримкою
до 1GbWiki
|
|