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, вам потребуется внести следующие изменения:
- В приведенном выше примере кода замените
ВАШ КЛЮЧ API ЗДЕСЬна ваш SparkPost Ключ API . - Изменение
from@example.comна адрес электронной почты для вашего подтвержденного домена . - Изменение
to@example.comна адрес, на который вы хотите отправить электронное письмо. - Скомпилируйте и запустите свой код, и вы увидите, что электронное письмо поступит в папку “Входящие”.
Более Продвинутые Примеры
Сообщение отправить(...) функция полезна для очень быстрого запуска и запуска. Однако в будущем вам может потребоваться выполнить более сложные операции. Вот пример, который поможет вам использовать всю мощь 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, вам нужно будет внести те же изменения, что и раньше:
- В этом примере кода замените
ВАШ КЛЮЧ API ЗДЕСЬна ваш SparkPost Ключ API . - Изменение
from@example.comна адрес электронной почты для вашего подтвержденного домена . - Изменение
to1@example.comиto2@example.comна адрес, на который вы хотите отправить электронное письмо. - Скомпилируйте и запустите свой код, и вы увидите, что электронное письмо поступит в папку “Входящие”.
Вы можете найти еще много примеров использования API SparkPost здесь .
Вывод
Мы постарались сделать использование SparkPost с Java таким же простым и приятным, как написание любого другого кода Java. Если у вас возникнут какие-либо проблемы или возникнут какие-либо вопросы, не стесняйтесь отправлять сообщение на Github репозиторий или присоединяйтесь к нам в нашей команде сообщества Slack на канале #java. Я бы с удовольствием выслушал вас.
Этот пост был первоначально опубликован на Этот пост был первоначально опубликован на
Оригинал: “https://dev.to/sparkpost/getting-started-with-sparkpost-in-java”