3 заметки с тегом

разработка

Настройка msmtp для работы с Яндекс.Почтой, GMail, SparkPost и Mandrill

В веб-окружении Битрикса по-умолчанию стоит msmtp для отправки писем. Если ваш домен привязан к Яндекс.Почте для домена, и вы хотите отправлять почту через реально существующий почтовый ящик с авторизацией, вам придётся внести в файл конфигурации некоторые изменения, чтобы всё работало хорошо.

Файл /home/bitrix/.msmtprc:

account default
logfile /var/log/msmtp.log
host smtp.yandex.ru
port 587 # именно этот порт!
from robot@domain.ru
keepbcc on
auth on
user robot@domain.ru
password <password>
tls on
tls_starttls on # обязательно для Яндекс.ПДД и SparkPost
tls_certcheck off

В случае использования SparkPost в качестве user задавайте SMTP_Injection, а в пароль пишите свой API ключ, которому разрешено право Send via SMTP.

Не забудьте открыть 587 порт в iptables.

И не задавайте слишком длинных паролей.

P.S: Яндекс разрешит отправлять почту через этот аккаунт только после того, как вы в нём один раз авторизуетесь, введёте личные данные и согласитесь с правилами работы.

P.S #2: при работе с GMail вторую строку (tls_starttls) наоборот включать не нужно.

P.S #3: при работе с Mandrill прописывать такое:

auth login
port 25
tls off
tls_starttls off
tls_certcheck off
timeout 5
2013   битрикс   разработка

Постраничность

На страницах сайтов со списками материалов часто предусматривают постраничный вывод информации. Всё логично, ведь если статьи или фотографии собирались десятилетие, то вывалить всё сразу на посетителя нельзя.

К сожалению, в этом вопросе разработчики часто переходят в другую крайность: выводят, скажем, только по пять-десять-двадцать материалов. И иногда этого мало.

Особенно сильно это мешает в каталогах интернет-магазинов: я хочу посмотреть все тридцать шесть видов подушек, которые продаются в магазине, но мне показывают по девять.

Соответственно, либо нужно давать возможность указания количества элементов на страницу, либо делать ещё одну страницу с полным списком элементов. Которую, кстати, можно не показывать, если их, скажем, больше пятисот.

2013   разработка

База стран и городов мира

Эта статья существовала и на старом моём сайте, и, судя по статистике посещений, была самой полезной его частью. Удалять не стал, хотя информация и устарела порядком.

Иногда бывает нужно в проект добавить базу стран и городов мира, чтобы пользователь мог выбрать своё место жительства.

Если база будет неполной, придётся разрешить пользователям вводить названия городов вручную, а это нежелательно, потому что пользователям свойственно ошибаться. В результате таких ошибок в базе появляется куча дубликатов, отличающихся буквально в одном символе (например, Железногорск-Илимский и Железногорск-Ильимский).

В общем, нужна более-менее полная база стран и городов мира.

Однажды подобная задача встала и передо мной. Вы можете скачать базу стран, регионов и городов с моего сайта.

Скачать базу стран и городов — SQL-файл в архиве RAR, 77 кбайт.

Формат базы

База представляет собой заархивированный файл с набором SQL-инструкций для PostgreSQL. В базе используется три таблицы.

Таблица стран (countries)

country_id   SMALLINT  PRIMARY KEY
title        VARCHAR

Таблица регионов (regions)

region_id    SMALLINT  PRIMARY KEY
country_id   SMALLINT  FOREIGN KEY
title        VARCHAR

Таблица городов (cities)

city_id      SMALLINT  PRIMARY KEY
region_id    SMALLINT  FOREIGN KEY
country_id   SMALLINT  FOREIGN KEY
title        VARCHAR

Замечания

Если нужно импортировать записи в СУБД отличную от PostgreSQL, создайте в своей базе данных такую же структуру, а затем выполните все INSERT-запросы из файла.

Дублирование поля country_id в таблице citites мне было необходимо. Вы можете удалить его, если хотите сэкономить немного свободного места.

Индексы в таблицах создавайте самостоятельно в соответствии со своими потребностями.

2012   разработка