#php #email #codeigniter #sendgrid
#php #Адрес электронной почты #инициатор кодирования #sendgrid #codeigniter
Вопрос:
Мы настраиваем систему массовой рассылки, используя sendgrid в качестве нашего ядра.
Мы сами управляем списками, а sendgrid — это просто наш транспорт, и используем code igniter для построения системы.
Нам интересно, что бы вы порекомендовали нам использовать: sendgrid в качестве smtp-сервера или использовать его curl API.
Мы рассылаем электронные письма x00 000 человек каждый день, все электронные письма имеют одинаковое содержание.
Мы нашли документацию по интеграции SendGrid для code igniter, в которой есть только примеры smtp, так что, возможно, это правильный путь?
Другая часть вопроса заключается в том, что если бы мы использовали SMTP api, как бы работали code igniters bcc_batch_mode?
Ответ №1:
В настоящее время я работаю в SendGrid. Наш веб-API на самом деле работает быстрее, чем SMTP, поскольку вам нужно всего лишь отправить нам один запрос cURL, чтобы отправить сообщение, в то время как с SMTP существует множество TCP-сообщений для подключения, HELO и тому подобного.
Недавно мы опубликовали новую библиотеку PHP, вы можете найти ее в нашем аккаунте на github: http://github.com/sendgrid
Не стесняйтесь обращаться к нам, если у вас есть вопросы.
Комментарии:
1. это удивительно… Веб-API быстрее, чем SMTP, на самом деле?
2. Привет, @iandouglas, извини, что немного сглаживаю это… И извините, если вы переборщили со всей этой сеткой отправки. Технический директор SendGrid, похоже, продолжает рекомендовать использовать опцию SMTP, но вы наверняка считаете, что Web API лучше?
3. @БоЛи Я все еще люблю SG. Я всегда рекомендовал использовать web API вместо SMTP. «Лучше» — это субъективно, как спрашивать случайных людей, думают ли они, что на улице холодно. 🙂
4. Верно, это имеет смысл. Было просто интересно увидеть разницу в рекомендациях внутри одной организации — это как бы затрудняет принятие решения. Спасибо!
5. Согласен. Если у вас есть полный операционный контроль над вашими системами и вы знаете, как его должным образом защитить и т.д., Вы можете изучить SMTP и использовать свои языки / библиотеки для отправки исходящих сообщений на SMTP. Но мне всегда нравилась гибкость использования web API. Тим (технический директор) работал над конечной точкой SMTP, я внес свой вклад в web API, так что, возможно, мы просто выбираем избранное. 🙂
Ответ №2:
Чтение документации на http://sendgrid.com/documentation/map/version/v2#api выбор между ними невелик. Все функциональные возможности доступны в любом случае. Для PHP я рекомендую smtp-сервер с их SMTP API, чтобы воспользоваться преимуществами существующих библиотек, которые правильно форматируют, mime-кодируют и отправляют электронное письмо. Примечательно, что пример PHP-кода приведен только для SMTP API.
Отредактировано для добавления к вопросу
В документации sendgrid указано кодировать нескольких получателей с их API в пользовательском заголовке почты — X-SMTPAPI — без использования CC и BCC. Смотрите http://sendgrid.com/documentation/display/api/SMTPDevelopersGuide
http://sendgrid.com/documentation/display/api/SMTP раздел рекомендаций для решения проблемы с несколькими получателями в заголовках обычной почты.
Комментарии:
1. Привет, волшебник, интересно, что они говорят, что вы должны использовать пользовательский заголовок, но их пример кода для code igniter просто использует функции to, cc и bcc класса email, что мне следует использовать?
2. Хорошо, итак, после разговора с их оперативной поддержкой с помощью to, bcc в порядке, вы можете использовать либо стандартный метод, либо заголовок, причина для заголовка — обеспечить лучшую совместимость с другими языками.
Ответ №3:
Хорошо, итак, просто в качестве ссылки для всех я собираюсь вставить мой чат поддержки. Обратите внимание, что этот чат охватывает широкий спектр вопросов, поэтому было бы полезно сохранить его здесь
я: Отправка нескольким получателям с использованием code igniter? Всем привет, я разработчик php, использующий code igniter, мы используем sendgrid в качестве нашей платформы отправки электронной почты,
Служба поддержки: Здравствуйте.
я: Привет,
Поддержка: Позвольте мне посмотреть, смогу ли я найти ссылку в наших документах.
я: Я полагаю, вы собираетесь ссылаться: http://bit.ly/jL1Pde
Поддержка: это была та, которую я искал.
я: Да, я видел это, но я также видел http://bit.ly/jvowuk в котором говорится, что вы должны использовать заголовок X-SMTPAPI, поэтому я немного запутался, какой из них мне следует использовать?
Поддержка: Используйте пример Codeigniter из предыдущей ссылки. Вы могли бы использовать X-SMTPAPI, но в данном случае это не требуется. Причина в лучшей переносимости с другими языками.
я: О, я понимаю, большое вам спасибо, у меня есть еще один запрос.
Поддержка: Ок.
я: При отправке электронных писем есть ли какой-либо заголовок, который мы можем отправить, чтобы связать дополнительную информацию с электронным письмом (например, идентификатор из нашей системы), чтобы помочь с поиском?
Поддержка: при необходимости вы можете задать пользовательскую категорию. setCategory(cat) Задает категорию для электронного сообщения, которое будет регистрироваться как. Вы можете использовать любое название категории, которое вам нравится. Это из http://bit.ly/iYjq2G
я: О, я понимаю, спасибо вам, и извините за беспокойство, но у меня есть еще один вопрос,
Поддержка: Ок.
я: Мы хотим предоставить нашим пользователям возможность отказаться от получения электронных писем. Все электронные письма, отправляемые определенным пакетом (например, 100 000 электронных писем), будут иметь одинаковое содержимое, за исключением того, что мы хотим добавить сообщение об отказе от подписки внизу, мы хотим иметь возможность отслеживать отказ от подписки до определенного сообщения, отправленного из нашей системы, поэтому мы хотим, чтобы URL выглядел примерно такhttp://example.com/unsubscribe/1234 поскольку 1234 является уникальным идентификатором отправляемого сообщения, предоставляет ли sendgrid простой способ выполнить это, или мы должны выполнять индивидуальный запрос для каждого сообщения?
Поддержка: Хорошо, значит, вы можете сделать это с помощью: addFilterSetting(фильтр, настройка, значение) Добавляет / изменяет настройку для фильтра. Параметры, указанные в заголовке, переопределят настроенные параметры. Вот пример параметра, который включается в PHP: $hdr->addFilterSetting(‘subscriptiontrack’, ‘enable’, 1);
я: хорошо, итак, глядя на http://bit.ly/k49a57 здесь говорится о том, что ваше пользовательское имя должно отображаться в ссылке, что именно это означает? поскольку мы не хотим, чтобы пользователь отправлялся в sendgrid для отказа от подписки.
Поддержка: Итак, это позволяет вам сделать так, чтобы ссылка говорила что-то другое, отличное от того, что мы предоставляем, например, «Удалить себя из этой компании».
я: О, понятно, итак, если мы хотим, чтобы URL-адрес был чем-то личным, мы должны управлять этим сами, это нормально, я не могу вспомнить где, но я заметил, что где-то было что-то о заменах содержимого электронной почты, позволит ли это нам отправлять через список идентификаторов, и в теле нашего электронного письма мы могли бы иметь *example.com/unsubscribe/—email_id —* и пусть он заменит *—email_id—* на переданный идентификатор?
я: Ах, http://bit.ly/jvowuk пункт 2 — это то, что я имел в виду, могу ли я это использовать?
Поддержка: Да, вы могли бы это сделать.
я: а, вот лучший пример, http://bit.ly/lK6ltE
Поддержка: Да, это показывает электронное письмо с заменой. Таким образом, это может быть изменено для каждого.
я: Итак, я могу использовать *$this-> email->_set_header(‘Пользовательский заголовок’, ‘значение’); * в code igniter для установки пользовательского заголовка, если бы я отправлял, скажем, 3000 электронных писем, у меня был бы массив, который выглядит как array (5,6,7,8 …) с идентификаторами, 3000 из них, как бы я их отправил? (если это не быстрый ответ, я могу разобраться с этим, посмотрев в классе SmtpApiHeader)
Поддержка: SmtpApiHeader — лучший способ. Добавляем их в качестве параметров для подстановки. Каждый индексированный идентификатор.
сеанс отключен.