Рубрики
Без рубрики

Начало работы с SparkPost на Java

Java-библиотека SparkPost – популярный способ интеграции с SparkPost. Если это описывает ваш текущий… Помечено sdk, api, java, новички.

Java-библиотека SparkPost является популярным способом интеграции с SparkPost. Если это описывает вашу текущую задачу, эта статья поможет вам отправить электронное письмо за несколько минут. Если вы изучаете визуальное, ознакомьтесь с этим Видео с началом работы у нас есть для клиентской библиотеки Java SparkPost.

Я предполагаю, что вы уже создали учетную запись SparkPost и ключ API .

Создание нового проекта

Как разработчик Java, я уверен, что вы более чем знакомы с тем, как добавлять зависимости в свой проект. Я продемонстрирую это с помощью Maven (mvn) в приведенном ниже фрагменте кода. Если вы не используете Maven, вам нужно будет создать проект и добавить в него библиотеку SparkPost обычным способом.

Давайте создадим проект.

> mvn archetype:generate -DgroupId=com.example -DartifactId=SparkPostDemo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] >>> maven-archetype-plugin:3.0.1:generate (default-cli) > generate-sources @ standalone-pom >>>
[INFO] 
[INFO] <<< maven-archetype-plugin:3.0.1:generate (default-cli) < generate-sources @ standalone-pom <<<
[INFO] 
[INFO] --- maven-archetype-plugin:3.0.1:generate (default-cli) @ standalone-pom ---
[INFO] Generating project in Batch mode
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-quickstart:1.0
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: basedir, Value: /private/tmp
[INFO] Parameter: package, Value: com.example
[INFO] Parameter: groupId, Value: com.example
[INFO] Parameter: artifactId, Value: SparkPostDemo
[INFO] Parameter: packageName, Value: com.example
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] project created from Old (1.x) Archetype in dir: /private/tmp/SparkPostDemo
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.888 s
[INFO] Finished at: 2017-08-11T10:52:54-05:00
[INFO] Final Memory: 18M/317M
[INFO] ------------------------------------------------------------------------

Используя приведенный выше код, мы только что создали следующую структуру проекта:.

> cd SparkPostDemo
> find .
.
./pom.xml
./src
./src/main
./src/main/java
./src/main/java/com
./src/main/java/com/example
./src/main/java/com/example/App.java
./src/test
./src/test/java
./src/test/java/com
./src/test/java/com/example
./src/test/java/com/example/AppTest.java

Теперь давайте создадим базовый проект:

> mvn clean install

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building SparkPostDemo 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
                 :
   [Snipped out lots of output]
                 :
 -------------------------------------------------------
 T E S T S
 -------------------------------------------------------
Running com.example.AppTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.003 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO] 
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ SparkPostDemo ---
[INFO] Building jar: /private/tmp/SparkPostDemo/target/SparkPostDemo-1.0-SNAPSHOT.jar
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ SparkPostDemo 
--------
[INFO] Installing 
/private/tmp/SparkPostDemo/target/SparkPostDemo-1.0-SNAPSHOT.jar to 
/Users/user/.m2/repository/com/example/SparkPostDemo/1.0-SNAPSHOT/SparkPostDem
o-1.0-SNAPSHOT.jar
[INFO] Installing /private/tmp/SparkPostDemo/pom.xml to 
/Users/user/.m2/repository/com/example/SparkPostDemo/1.0-SNAPSHOT/SparkPostDem
o-1.0-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.128 s
[INFO] Finished at: 2017-08-11T10:55:57-05:00
[INFO] Final Memory: 19M/286M
[INFO] ------------------------------------------------------------------------

Добавление зависимости библиотеки SparkPost

Теперь давайте отредактируем объектную модель проекта Maven (pom.xml ) и добавьте зависимость библиотеки SparkPost. Вы можете найти фрагмент кода с последней версией здесь . Добавьте это в "зависимости" элемент "pom.xml " файл. Вот пример с последней версией на момент написания этого поста:


  4.0.0
  com.example
  SparkPostDemo
  jar
  1.0-SNAPSHOT
  SparkPostDemo
  http://maven.apache.org
  
    
      junit
      junit
      3.8.1
      test
    

    
    
        com.sparkpost
        sparkpost-lib
        0.19
    

  

Как только зависимость будет добавлена, создайте проект снова следующим образом:

mvn clean install
[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building SparkPostDemo 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
                 :
   [Snipped out some output]
                 :
------------------------------------------------------------
 T E S T S
------------------------------------------------------------
Running com.example.AppTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.006 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO] 
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ SparkPostDemo ---
[INFO] Building jar: /private/tmp/SparkPostDemo/target/SparkPostDemo-1.0-SNAPSHOT.jar
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ SparkPostDemo ---
[INFO] Installing /private/tmp/SparkPostDemo/target/SparkPostDemo-1.0-SNAPSHOT.jar to /Users/user/.m2/repository/com/example/SparkPostDemo/1.0-SNAPSHOT/SparkPostDemo-1.0-SNAPSHOT.jar
[INFO] Installing /private/tmp/SparkPostDemo/pom.xml to /Users/user/.m2/repository/com/example/SparkPostDemo/1.0-SNAPSHOT/SparkPostDemo-1.0-SNAPSHOT.pom
[INFO] --------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] --------------------------------------------------------------------
[INFO] Total time: 2.793 s
[INFO] Finished
[INFO] Final Memory:
[INFO] --------------------------------------------------------------------

И с этим мы готовы попробовать это!

Отправка Вашего Первого Электронного Письма

Самый простой способ отправить электронное письмо – использовать вызов SendMessage . Вот пример:

package com.example;

import com.sparkpost.Client;
import com.sparkpost.exception.SparkPostException;

/**
 * My First Email Example
 *
 */
public class App 
{
    public static void main(String[] args) throws SparkPostException {
        String API_KEY = "YOUR API KEY HERE";
        Client client = new Client(API_KEY);

        client.sendMessage(
                "from@example.com",
                "to@example.com",
                "The subject of the message",
                "The text part of the email",
                "The HTML part of the email");

    }
}

Чтобы это работало для вашей собственной учетной записи SparkPost, вам потребуется внести следующие изменения:

  1. В приведенном выше примере кода замените ВАШ КЛЮЧ API ЗДЕСЬ на ваш SparkPost Ключ API .
  2. Изменение from@example.com на адрес электронной почты для вашего подтвержденного домена .
  3. Изменение to@example.com на адрес, на который вы хотите отправить электронное письмо.
  4. Скомпилируйте и запустите свой код, и вы увидите, что электронное письмо поступит в папку “Входящие”.

Более Продвинутые Примеры

Сообщение отправить(...) функция полезна для очень быстрого запуска и запуска. Однако в будущем вам может потребоваться выполнить более сложные операции. Вот пример, который поможет вам использовать всю мощь API SparkPost.

package com.example;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.sparkpost.Client;
import com.sparkpost.exception.SparkPostException;
import com.sparkpost.model.AddressAttributes;
import com.sparkpost.model.RecipientAttributes;
import com.sparkpost.model.TemplateContentAttributes;
import com.sparkpost.model.TransmissionWithRecipientArray;
import com.sparkpost.model.responses.TransmissionCreateResponse;
import com.sparkpost.resources.ResourceTransmissions;
import com.sparkpost.transport.IRestConnection;
import com.sparkpost.transport.RestConnection;

public class TemplateExample {
    private Client client;

    public static final void main(String[] args) throws SparkPostException {
        TemplateExample example = new TemplateExample();
        example.sendEmail();
    }

    public void sendEmail() throws SparkPostException {

        // Setup a SparkPost client
        client = new Client("YOUR API KEY HERE");
        client.setFromEmail("from@example.com");

        // Create our Transmission object that will be used to send the transmission
        TransmissionWithRecipientArray transmission = new TransmissionWithRecipientArray();

        // Populate Recipients
        String[] recipients = new String[] {
                "to1@example.com",
                "to2@example.com"
        };

        List recipientArray = new ArrayList();
        for (String recipient : recipients) {
            RecipientAttributes recipientAttribs = new RecipientAttributes();
            recipientAttribs.setAddress(new AddressAttributes(recipient));
            recipientArray.add(recipientAttribs);
        }
        transmission.setRecipientArray(recipientArray);

        // Populate Substitution Data. This will replace content in the template with the value defined here.
        Map substitutionData = new HashMap();
        substitutionData.put("extraSubjectContent", "More Subject Content");
        substitutionData.put("extraBodyContent", "You can add substitution data too.");
        transmission.setSubstitutionData(substitutionData);

        // Populate Email Body
        TemplateContentAttributes contentAttributes = new TemplateContentAttributes();
        contentAttributes.setFrom(new AddressAttributes(client.getFromEmail()));
        contentAttributes.setSubject("Your subject content here. {{extraSubjectContent}}");
        contentAttributes.setText("Your Text content here. {{extraBodyContent}}");
        contentAttributes.setHtml("

Your HTML content here. {{extraBodyContent}}

"); transmission.setContentAttributes(contentAttributes); transmission.setContentAttributes(contentAttributes); IRestConnection connection = new RestConnection(this.client); TransmissionCreateResponse transmissionResponse = ResourceTransmissions.create(connection, 0, transmission); System.out.println(transmissionResponse); } }

Чтобы это работало для вашей учетной записи SparkPost, вам нужно будет внести те же изменения, что и раньше:

  1. В этом примере кода замените ВАШ КЛЮЧ API ЗДЕСЬ на ваш SparkPost Ключ API .
  2. Изменение from@example.com на адрес электронной почты для вашего подтвержденного домена .
  3. Изменение to1@example.com и to2@example.com на адрес, на который вы хотите отправить электронное письмо.
  4. Скомпилируйте и запустите свой код, и вы увидите, что электронное письмо поступит в папку “Входящие”.

Вы можете найти еще много примеров использования API SparkPost здесь .

Вывод

Мы постарались сделать использование SparkPost с Java таким же простым и приятным, как написание любого другого кода Java. Если у вас возникнут какие-либо проблемы или возникнут какие-либо вопросы, не стесняйтесь отправлять сообщение на Github репозиторий или присоединяйтесь к нам в нашей команде сообщества Slack на канале #java. Я бы с удовольствием выслушал вас.

Этот пост был первоначально опубликован на Этот пост был первоначально опубликован на

Оригинал: “https://dev.to/sparkpost/getting-started-with-sparkpost-in-java”