Отправка электронной почты в Ruby - SMTP
SMTP (Simple Mail Transfer Protocol) — это набор правил для передачи почты с адреса источника на адрес назначения, и он управляет тем, как сообщения пересылаются.
Ruby предоставляет Net::SMTP для отправки электронной почты и предоставляет два метода: new и start:
newМетод имеет два параметра:
- имя сервераПо умолчанию localhost
- номер портаПо умолчанию 25
startМетод имеет следующие параметры:
- server- IP-адрес SMTP-сервера, по умолчанию localhost
- port- Номер порта, по умолчанию 25
- domain- Домен отправителя, по умолчанию ENV["HOSTNAME"]
- account- Имя пользователя, по умолчанию nil
- password- Пароль пользователя, по умолчанию nil
- authtype- Тип аутентификации, по умолчаниюcram_md5
Метод экземпляра объекта SMTP вызывает sendmail со следующими параметрами:
- source- Строка, массив или что-либо, возвращаемое итератором each в любой момент времени.
- sender- Строка, отображаемая в поле формы электронного письма.
- recipients- Строка или массив строк, представляющих адрес получателя.
Пример
Ниже приведён простой скрипт на Ruby для отправки электронной почты:
Пример
Используйте Net::SMTP для подключения к SMTP-серверу на локальной машине и используйте метод send_message для отправки электронного письма. Параметрами метода являются адрес электронной почты отправителя и адрес электронной почты получателя.
Если на вашей локальной машине не запущен SMTP-сервер, вы можете использовать Net::SMTP для связи с удаленным SMTP-сервером. Если вы пользуетесь службами веб-почты (например, Hotmail или Yahoo Mail), ваш почтовый провайдер предоставит вам данные сервера исходящей почты:
Приведённый выше код подключится к почтовому серверу с хостом mail.your-domain.com и портом 25. Если нужно указать имя пользователя и пароль, код выглядит так:
В приведённом выше примере для подключения к почтовому серверу с хостом mail.your-domain.com и портом 25 используются указанные имя пользователя и пароль.
Отправка HTML-письма с помощью Ruby
Net::SMTP также поддерживает отправку писем в формате HTML.
При отправке письма можно задать версию MIME, тип документа и кодировку, чтобы отправить письмо в формате HTML.
Пример
В следующем примере показано, как отправить письмо в формате HTML:
Пример
Отправка письма с вложениями
Если вам нужно отправить электронное письмо со смешанным содержимым, необходимо установить Content-type в multipart/mixed. Так вы сможете добавить содержимое вложения в письмо.
Перед отправкой вложению необходимо использовать функциюpack("m"), чтобы преобразовать его содержимое в формат base64.
Пример
Следующий пример отправит электронное письмо с вложением /tmp/test.txt:
Пример
Примечание:Можно указать несколько адресов получателей, но их нужно разделять запятыми.
Другие расширения