Skip to content

Latest commit

 

History

History

ThinkingHome.Plugins.Mail

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

ThinkingHome.Plugins.Mail

NuGet Pre Release

MailPlugin

Позволяет отправлять сообщения по электронной почте.

Конфигурация

Вы можете настраивать параметры SMTP сервера, параметры аутентификации и информацию об отправителе сообщений.

{
    "plugins": {

        ...

        "ThinkingHome.Plugins.Mail.MailPlugin": {
            "fromName": "Cow",
            "fromMail": "[email protected]",
            "smtpHost": "localhost",
            "smtpPort": 1025,
            "useSSL": true,
            "disableCertificateValidation": false,
            "auth": {
                "login": "[email protected]",
                "password": "password"
            }
        }
    }
}

API

void SendEmail(string email, string subject, string message)

Отправляет письмо с указанными темой и текстом на указанный адрес.

Пример

public class MyPlugin : PluginBase
{
    private readonly MailPlugin mail;
    
    private void MyMethod()
    {
        mail.SendEmail("[email protected]", "My subject", "My message body.");
    }
}

void SendEmail(string email, string subject, string message, string fileName, byte[] fileContent)

Отправляет письмо с прикрепленным файлом.

Пример

public class MyPlugin : PluginBase
{
    private readonly MailPlugin mail;
    
    private void MyMethod()
    {
        var bytes = File.ReadAllBytes("image.jpg");
        
        mail.SendEmail("[email protected]", "My subject", "My message body.", "image.jpg", bytes);
    }
}

void SendEmail(string email, string subject, string message, string fileName, Buffer fileContent)

Отправляет письмо с прикрепленным файлом. Этот метод принимает содержимое файла в виде экземпляра класса ThinkingHome.Plugins.Scripts.Buffer (нужен для использования в сценариях).

Пример

public class MyPlugin : PluginBase
{
    private readonly MailPlugin mail;
    
    private void MyMethod()
    {
        var bytes = File.ReadAllBytes("image.jpg");
        var buffer = new Buffer(bytes);
        
        mail.SendEmail("[email protected]", "My subject", "My message body.", "image.jpg", buffer);
    }
}

API сценариев

sendMail

Отправляет письмо с указанными темой и текстом на указанный адрес.

Пример

host.api.sendMail('[email protected]', 'My subject', 'My message body.');

sendMailWithAttachment

Отправляет письмо с прикрепленным файлом.

Пример

var file = host.api.getExampleImage(); // Buffer

host.api.sendMailWithAttachment(
    '[email protected]',
    'My subject',
    'My message body.',
    'my-file.jpg',
    file);

Примеры подключения к почтовым сервисам

Яндекс Почта

{
    "smtpHost": "smtp.yandex.com",
    "smtpPort": 465,
    "useSSL": true,
    "auth": {
        "login": "[email protected]",
        "password": "<пароль>"
    }
}

Обратите внимание, для отправки писем через Яндекс нужно включить в настройках почты возможность доступа из почтовых клиентов:

Все настройки → Почтовые программы → Разрешить доступ к почтовому ящику с помощью почтовых клиентов → С сервера imap.yandex.ru по протоколу IMAP

GMail

{
    "smtpHost": "smtp.gmail.com",
    "smtpPort": 465,
    "useSSL": true,
    "disableCertificateValidation": true,
    "auth": {
        "login": "[email protected]",
        "password": "<пароль для приложений>"
    }
}