Мой интернет-магазин может отправлять письма с подтверждением заказа через Gmail синхронно? - PullRequest
1 голос
/ 21 апреля 2009

Когда пользователь выполняет заказ в моем интернет-магазине, он получает подтверждение по электронной почте.

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

Он отлично работает в разработке, но Мне интересно, не вызовет ли это проблемы в работе. Потребуется ли заставлять пользователя ждать слишком долго? Много ли одновременных подключений Gmail доставит нам неприятности? Любые другие общие замечания?

Если синхронная отправка электронной почты будет проблемой, может кто-нибудь порекомендовать асинхронное решение ( ar_mailer хорошо?)

Ответы [ 4 ]

2 голосов
/ 21 апреля 2009

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

Как говорится:

"В попытке бороться со спамом и предотвратить злоупотребление, Google будет временно отключить свой аккаунт, если вы отправляете сообщение более чем 500 получателям или если вы отправите большое количество недоставленные сообщения. Если вы используете Клиент POP или IMAP (Microsoft Outlook или Apple Mail, например, вы можете только отправить сообщение 100 человек на время. Ваш аккаунт должен быть повторно включен в течение 24 часов. «

http://mail.google.com/support/bin/answer.py?hl=en&answer=22839

Я бы порекомендовал использовать sendmail на вашем сервере, чтобы иметь больший контроль над тем, что происходит, и не зависеть от другой службы, особенно когда sendmail не очень сложен в настройке.

1 голос
/ 21 апреля 2009

ФАКТ: Gmail падает. Не часто, но это случается, и вы не можете это контролировать или проверять.

Самое простое быстрое решение - запустить отдельный поток или создать подпроцесс для отправки электронного письма. Да, скорее всего, возникнут проблемы с использованием Gmail, и я действительно не имею никакой информации по этому поводу и альтернатив. Но с точки зрения дизайна, просто нет причин заставлять пользователя ждать завершения этого процесса.

С точки зрения тестирования, здесь может пригодиться шаблон прокси. Вам может быть легко напрямую вызвать Gmail для отправки сообщения. Сделай это сложнее. Поместите в прокси-объект, который выполняет для вас рассылку, которую вы можете отключить (потому что, черт возьми, вы не можете в целях тестирования вызвать сбой Gmail). Просто заставьте свою команду следить за тем, что происходит в случае сбоя в работе электронной почты, отключив прокси-сервер и попытавшись выполнить заказ. Если вы делаете это синхронно, то все бедствия, упомянутые здесь другими авторами, поднимут голову. Если вы делаете это асинхронно, вы должны иметь возможность позволить ему молча провалиться (с точки зрения пользователя - с вашей точки зрения, среди ночи должны быть огромные операторы записи в журнал и текстовые сообщения и, возможно, слабый электрический ток, дуговой разряд). поверхность чьей-то кожи).

1 голос
/ 21 апреля 2009

Если сервер ожидает отправки сообщения электронной почты, прежде чем предоставить пользователю какой-либо отзыв, если при подключении к почтовому серверу возникли проблемы (тайм-ауты, отключение сервера и т. Д.), Запрос пользователя также истечет, и ему ничего не сообщат о статус его заказа, поэтому я считаю, что вы действительно должны делать это асинхронно. Кроме того, вы должны проверить, разрешено ли это делать в TOS GMail. Если это не так, вы можете проверить, разрешено ли это, если вы покупаете одну из их подписок. Кроме того, несомненно, существует ограничение на количество исходящих электронных писем, которые вы можете отправлять в течение определенного периода времени, поэтому, если вы ожидаете, что ваш интернет-магазин будет успешным, вы можете достичь этого предела и столкнуться с какой-то неприятной проблемой. Если вы не являетесь хостингом сайта самостоятельно, вам следует проверить, предлагает ли ваш хост почтовые серверы (некоторые планы включают их бесплатно), так как тогда использование ISP вашего хоста было бы наиболее очевидным выбором.

1 голос
/ 21 апреля 2009

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

Я бы поставил какую-то другую очередь, sendmail звучит приемлемо, и вы не можете создать свой сайт сейчас, где он «может» быть размещен в будущем.

Ryan

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...