تتيح لك واجهة برمجة تطبيقات LegallyMail إرسال رسائل بريد إلكتروني معتمدة من تطبيقك. يتم تسجيل جميع الإرسالات ويمكنك الحصول على شهادات قانونية للتسليم والقراءة.
تتطلب جميع طلبات واجهة برمجة التطبيقات المصادقة عبر رمز وصول. يمكنك الحصول على رمزك من لوحة المستخدم.
قم بتضمين الرمز في رأس التفويض:
Authorization: Bearer YOUR_TOKEN_HERE
قم بتضمين الرمز في JSON الجسم:
{
"token": "YOUR_TOKEN_HERE",
"recipient": "example@example.com",
...
}
للحصول على رمز API، يجب عليك أولاً إجراء عملية دفع واحدة على الأقل. ثم يمكنك إنشاء الرموز من لوحة المستخدم.
تسجيل الدخول/api/send
إرسال بريد إلكتروني معتمد.
| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
Authorization |
string (header) | نعم | رمز المصادقة بتنسيق "Bearer {token}" أو الرمز فقط |
recipient / to |
string | نعم | عنوان بريد المستلم |
subject |
string | نعم | موضوع البريد الإلكتروني |
message / body / content |
string (HTML) | نعم | محتوى البريد الإلكتروني بتنسيق HTML |
reply_to |
string (email) | لا | عنوان بريد الرد (اختياري) |
reply_to_name |
string | لا | اسم الرد (اختياري) |
attachments |
array | لا | مصفوفة من ملفات المرفقات (اختياري). يجب أن يحتوي كل ملف على: filename, content (base64), mime_type |
curl -X POST https://legallymail.com/api/send \
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
-H "Content-Type: application/json" \
-d '{
"recipient": "example@example.com",
"subject": "Test Email with Attachment",
"message": "<h1>Hello World</h1><p>This email contains an attachment.</p>",
"attachments": [
{
"filename": "document.pdf",
"content": "base64_encoded_file_content_here",
"mime_type": "application/pdf"
}
]
}'
<?php
$token = 'YOUR_TOKEN_HERE';
$url = 'https://legallymail.com/api/send';
// Leer el archivo y codificarlo en base64
$filePath = '/path/to/document.pdf';
$fileContent = base64_encode(file_get_contents($filePath));
$data = [
'recipient' => 'example@example.com',
'subject' => 'Test Email with Attachment',
'message' => '<h1>Hello World</h1><p>This email contains an attachment.</p>',
'attachments' => [
[
'filename' => 'document.pdf',
'content' => $fileContent,
'mime_type' => 'application/pdf'
]
]
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $token,
'Content-Type: application/json'
]);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
?>
import requests
import base64
token = 'YOUR_TOKEN_HERE'
url = 'https://legallymail.com/api/send'
# Leer el archivo y codificarlo en base64
with open('/path/to/document.pdf', 'rb') as file:
file_content = base64.b64encode(file.read()).decode('utf-8')
data = {
'recipient': 'example@example.com',
'subject': 'Test Email with Attachment',
'message': '<h1>Hello World</h1><p>This email contains an attachment.</p>',
'attachments': [
{
'filename': 'document.pdf',
'content': file_content,
'mime_type': 'application/pdf'
}
]
}
headers = {
'Authorization': f'Bearer {token}',
'Content-Type': 'application/json'
}
response = requests.post(url, json=data, headers=headers)
result = response.json()
const token = 'YOUR_TOKEN_HERE';
const url = 'https://legallymail.com/api/send';
// Leer el archivo y codificarlo en base64 (Node.js)
const fs = require('fs');
const filePath = '/path/to/document.pdf';
const fileContent = fs.readFileSync(filePath).toString('base64');
const data = {
recipient: 'example@example.com',
subject: 'Test Email with Attachment',
message: '<h1>Hello World</h1><p>This email contains an attachment.</p>',
attachments: [
{
filename: 'document.pdf',
content: fileContent,
mime_type: 'application/pdf'
}
]
};
fetch(url, {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
})
.then(response => response.json())
.then(result => console.log(result))
.catch(error => console.error('Error:', error));
package main
import (
'bytes'
'encoding/base64'
'encoding/json'
'io/ioutil'
'net/http'
)
func main() {
token := 'YOUR_TOKEN_HERE'
url := 'https://legallymail.com/api/send'
// Leer el archivo y codificarlo en base64
filePath := '/path/to/document.pdf'
fileContent, _ := ioutil.ReadFile(filePath)
fileBase64 := base64.StdEncoding.EncodeToString(fileContent)
data := map[string]interface{}{
'recipient': 'example@example.com',
'subject': 'Test Email with Attachment',
'message': '<h1>Hello World</h1><p>This email contains an attachment.</p>',
'attachments': []map[string]string{
{
'filename': 'document.pdf',
'content': fileBase64,
'mime_type': 'application/pdf',
},
},
}
jsonData, _ := json.Marshal(data)
req, _ := http.NewRequest('POST', url, bytes.NewBuffer(jsonData))
req.Header.Set('Authorization', 'Bearer '+token)
req.Header.Set('Content-Type', 'application/json')
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
}
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Base64;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import com.google.gson.Gson;
public class SendEmail {
public static void main(String[] args) throws IOException, InterruptedException {
String token = 'YOUR_TOKEN_HERE';
String url = 'https://legallymail.com/api/send';
// Leer el archivo y codificarlo en base64
String filePath = '/path/to/document.pdf';
byte[] fileBytes = Files.readAllBytes(Paths.get(filePath));
String fileBase64 = Base64.getEncoder().encodeToString(fileBytes);
Map<String, Object> attachment = new HashMap<>();
attachment.put('filename', 'document.pdf');
attachment.put('content', fileBase64);
attachment.put('mime_type', 'application/pdf');
Map<String, Object> data = new HashMap<>();
data.put('recipient', 'example@example.com');
data.put('subject', 'Test Email with Attachment');
data.put('message', '<h1>Hello World</h1><p>This email contains an attachment.</p>');
data.put('attachments', Arrays.asList(attachment));
Gson gson = new Gson();
String jsonData = gson.toJson(data);
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header('Authorization', 'Bearer ' + token)
.header('Content-Type', 'application/json')
.POST(HttpRequest.BodyPublishers.ofString(jsonData))
.build();
HttpClient client = HttpClient.newHttpClient();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
}
}
const https = require('https');
const fs = require('fs');
const token = 'YOUR_TOKEN_HERE';
const url = 'https://legallymail.com/api/send';
// Leer el archivo y codificarlo en base64
const filePath = '/path/to/document.pdf';
const fileContent = fs.readFileSync(filePath).toString('base64');
const data = {
recipient: 'example@example.com',
subject: 'Test Email with Attachment',
message: '<h1>Hello World</h1><p>This email contains an attachment.</p>',
attachments: [
{
filename: 'document.pdf',
content: fileContent,
mime_type: 'application/pdf'
}
]
};
const options = {
hostname: 'legallymail.com',
path: '/api/send',
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
}
};
const req = https.request(options, (res) => {
let responseData = '';
res.on('data', (chunk) => {
responseData += chunk;
});
res.on('end', () => {
const result = JSON.parse(responseData);
console.log(result);
});
});
req.on('error', (error) => {
console.error('Error:', error);
});
req.write(JSON.stringify(data));
req.end();
using System;
using System.Net.Http;
using System.Text;
using System.IO;
using Newtonsoft.Json;
class Program
{
static async System.Threading.Tasks.Task Main()
{
string token = 'YOUR_TOKEN_HERE';
string url = 'https://legallymail.com/api/send';
// Leer el archivo y codificarlo en base64
string filePath = '/path/to/document.pdf';
byte[] fileBytes = File.ReadAllBytes(filePath);
string fileBase64 = Convert.ToBase64String(fileBytes);
var attachment = new
{
filename = 'document.pdf',
content = fileBase64,
mime_type = 'application/pdf'
};
var data = new
{
recipient = 'example@example.com',
subject = 'Test Email with Attachment',
message = '<h1>Hello World</h1><p>This email contains an attachment.</p>',
attachments = new[] { attachment }
};
string jsonData = JsonConvert.SerializeObject(data);
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add('Authorization', 'Bearer ' + token);
var content = new StringContent(jsonData, Encoding.UTF8, 'application/json');
var response = await client.PostAsync(url, content);
string result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
}
{
"success": true,
"message": "تم إرسال البريد الإلكتروني بنجاح",
"data": {
"tracking_id": "cm_xxx",
"recipient": "example@example.com",
"subject": "Test Email",
"sent_at": "2024-01-01 12:00:00",
"mailsender_id": "xxx"
}
}
/api/info
الحصول على معلومات واجهة برمجة التطبيقات والمستخدم المصادق عليه
إرجاع معلومات حول واجهة برمجة التطبيقات والمستخدم المصادق عليه، بما في ذلك البريد الإلكتروني وخطة الاشتراك ورسائل البريد الإلكتروني المتبقية.
| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
Authorization |
string (header) | نعم | رمز المصادقة بتنسيق "Bearer {token}" أو الرمز فقط |
curl -X GET https://legallymail.com/api/info \
-H "Authorization: Bearer YOUR_TOKEN_HERE"
<?php
$token = 'YOUR_TOKEN_HERE';
$url = 'https://legallymail.com/api/info';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $token
]);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
?>
import requests
token = 'YOUR_TOKEN_HERE'
url = 'https://legallymail.com/api/info'
headers = {
'Authorization': f'Bearer {token}'
}
response = requests.get(url, headers=headers)
result = response.json()
const token = 'YOUR_TOKEN_HERE';
const url = 'https://legallymail.com/api/info';
fetch(url, {
method: 'GET',
headers: {
'Authorization': `Bearer ${token}`
}
})
.then(response => response.json())
.then(result => console.log(result))
.catch(error => console.error('Error:', error));
package main
import (
'net/http'
'io/ioutil'
)
func main() {
token := 'YOUR_TOKEN_HERE'
url := 'https://legallymail.com/api/info'
req, _ := http.NewRequest('GET', url, nil)
req.Header.Set('Authorization', 'Bearer '+token)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class GetInfo {
public static void main(String[] args) throws Exception {
String token = 'YOUR_TOKEN_HERE';
String url = 'https://legallymail.com/api/info';
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header('Authorization', 'Bearer ' + token)
.GET()
.build();
HttpClient client = HttpClient.newHttpClient();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
String result = response.body();
}
}
const https = require('https');
const token = 'YOUR_TOKEN_HERE';
const url = 'https://legallymail.com/api/info';
const options = {
hostname: 'legallymail.com',
path: '/api/info',
method: 'GET',
headers: {
'Authorization': `Bearer ${token}`
}
};
const req = https.request(options, (res) => {
let responseData = '';
res.on('data', (chunk) => {
responseData += chunk;
});
res.on('end', () => {
const result = JSON.parse(responseData);
console.log(result);
});
});
req.on('error', (error) => {
console.error('Error:', error);
});
req.end();
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
string token = 'YOUR_TOKEN_HERE';
string url = 'https://legallymail.com/api/info';
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add('Authorization', 'Bearer ' + token);
var response = await client.GetAsync(url);
string result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
}
{
"name": "LegallyMail API",
"version": "1.0.0",
"user": {
"email": "usuario@example.com",
"name": "Nombre Usuario",
"plan": "professional",
"plan_name": "Profesional",
"plan_limit": 100,
"extra_emails": 0,
"remaining_emails": 75
}
}
/api/emails
الحصول على آخر رسائل البريد الإلكتروني المرسلة
إرجاع قائمة بآخر رسائل البريد الإلكتروني المرسلة من قبل المستخدم المصادق عليه، بما في ذلك حالتها (sent, read, failed). الحد الأقصى 25 نتيجة.
| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
Authorization |
string (header) | نعم | رمز المصادقة بتنسيق "Bearer {token}" أو الرمز فقط |
limit |
integer (query) | نعم | عدد رسائل البريد الإلكتروني المراد إرجاعها (بين 1 و 25). مطلوب. |
curl -X GET "https://legallymail.com/api/emails?limit=10" \
-H "Authorization: Bearer YOUR_TOKEN_HERE"
<?php
$token = 'YOUR_TOKEN_HERE';
$url = 'https://legallymail.com/api/emails?limit=10';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $token
]);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
?>
import requests
token = 'YOUR_TOKEN_HERE'
url = 'https://legallymail.com/api/emails'
params = {'limit': 10}
headers = {
'Authorization': f'Bearer {token}'
}
response = requests.get(url, params=params, headers=headers)
result = response.json()
const token = 'YOUR_TOKEN_HERE';
const url = 'https://legallymail.com/api/emails?limit=10';
fetch(url, {
method: 'GET',
headers: {
'Authorization': `Bearer ${token}`
}
})
.then(response => response.json())
.then(result => console.log(result))
.catch(error => console.error('Error:', error));
package main
import (
'net/http'
'io/ioutil'
)
func main() {
token := 'YOUR_TOKEN_HERE'
url := 'https://legallymail.com/api/emails?limit=10'
req, _ := http.NewRequest('GET', url, nil)
req.Header.Set('Authorization', 'Bearer '+token)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class GetEmails {
public static void main(String[] args) throws Exception {
String token = 'YOUR_TOKEN_HERE';
String url = 'https://legallymail.com/api/emails?limit=10';
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header('Authorization', 'Bearer ' + token)
.GET()
.build();
HttpClient client = HttpClient.newHttpClient();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
String result = response.body();
}
}
const https = require('https');
const token = 'YOUR_TOKEN_HERE';
const url = 'https://legallymail.com/api/emails?limit=10';
const options = {
hostname: 'legallymail.com',
path: '/api/emails?limit=10',
method: 'GET',
headers: {
'Authorization': `Bearer ${token}`
}
};
const req = https.request(options, (res) => {
let responseData = '';
res.on('data', (chunk) => {
responseData += chunk;
});
res.on('end', () => {
const result = JSON.parse(responseData);
console.log(result);
});
});
req.on('error', (error) => {
console.error('Error:', error);
});
req.end();
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
string token = 'YOUR_TOKEN_HERE';
string url = 'https://legallymail.com/api/emails?limit=10';
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add('Authorization', 'Bearer ' + token);
var response = await client.GetAsync(url);
string result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
}
{
"success": true,
"count": 2,
"limit": 10,
"max_limit": 25,
"emails": [
{
"id": 123,
"tracking_id": "cm_abc123",
"recipient": "example@example.com",
"subject": "Test Email",
"status": "read",
"sent_at": "2024-01-15 10:30:00",
"read_at": "2024-01-15 11:00:00",
"created_at": "2024-01-15 10:30:00",
"mailsender_id": "mail_xyz789"
},
{
"id": 122,
"tracking_id": "cm_def456",
"recipient": "test@example.com",
"subject": "Another Email",
"status": "sent",
"sent_at": "2024-01-14 15:20:00",
"read_at": null,
"created_at": "2024-01-14 15:20:00",
"mailsender_id": "mail_uvw012"
}
]
}
/api/email
الحصول على حالة بريد إلكتروني محدد
إرجاع معلومات مفصلة عن بريد إلكتروني محدد يتم التعرف عليه من خلال tracking_id الخاص به، بما في ذلك حالته الحالية (sent, read, failed) وتواريخ الإرسال والقراءة.
| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
Authorization |
string (header) | نعم | رمز المصادقة بتنسيق "Bearer {token}" أو الرمز فقط |
tracking_id |
string (query) | نعم | معرف التتبع الفريد لرسالة البريد الإلكتروني (tracking_id) الذي يتم إرجاعه عند إرسال البريد الإلكتروني. |
curl -X GET "https://legallymail.com/api/email?tracking_id=cm_abc123" \
-H "Authorization: Bearer YOUR_TOKEN_HERE"
<?php
$token = 'YOUR_TOKEN_HERE';
$trackingId = 'cm_abc123';
$url = 'https://legallymail.com/api/email?tracking_id=' . urlencode($trackingId);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $token
]);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
?>
import requests
token = 'YOUR_TOKEN_HERE'
url = 'https://legallymail.com/api/email'
params = {'tracking_id': 'cm_abc123'}
headers = {
'Authorization': f'Bearer {token}'
}
response = requests.get(url, params=params, headers=headers)
result = response.json()
const token = 'YOUR_TOKEN_HERE';
const trackingId = 'cm_abc123';
const url = `https://legallymail.com/api/email?tracking_id=${trackingId}`;
fetch(url, {
method: 'GET',
headers: {
'Authorization': `Bearer ${token}`
}
})
.then(response => response.json())
.then(result => console.log(result))
.catch(error => console.error('Error:', error));
package main
import (
'net/http'
'io/ioutil'
'net/url'
)
func main() {
token := 'YOUR_TOKEN_HERE'
trackingId := 'cm_abc123'
baseUrl := 'https://legallymail.com/api/email'
params := url.Values{}
params.Add('tracking_id', trackingId)
fullUrl := baseUrl + '?' + params.Encode()
req, _ := http.NewRequest('GET', fullUrl, nil)
req.Header.Set('Authorization', 'Bearer '+token)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class GetEmail {
public static void main(String[] args) throws Exception {
String token = 'YOUR_TOKEN_HERE';
String trackingId = 'cm_abc123';
String url = 'https://legallymail.com/api/email?tracking_id=' + trackingId;
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header('Authorization', 'Bearer ' + token)
.GET()
.build();
HttpClient client = HttpClient.newHttpClient();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
String result = response.body();
}
}
const https = require('https');
const token = 'YOUR_TOKEN_HERE';
const trackingId = 'cm_abc123';
const url = `https://legallymail.com/api/email?tracking_id=${trackingId}`;
const options = {
hostname: 'legallymail.com',
path: `/api/email?tracking_id=${trackingId}`,
method: 'GET',
headers: {
'Authorization': `Bearer ${token}`
}
};
const req = https.request(options, (res) => {
let responseData = '';
res.on('data', (chunk) => {
responseData += chunk;
});
res.on('end', () => {
const result = JSON.parse(responseData);
console.log(result);
});
});
req.on('error', (error) => {
console.error('Error:', error);
});
req.end();
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
string token = 'YOUR_TOKEN_HERE';
string trackingId = 'cm_abc123';
string url = $"https://legallymail.com/api/email?tracking_id={trackingId}";
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add('Authorization', 'Bearer ' + token);
var response = await client.GetAsync(url);
string result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
}
{
"success": true,
"email": {
"id": 123,
"tracking_id": "cm_abc123",
"recipient": "example@example.com",
"subject": "Test Email",
"status": "read",
"sent_at": "2024-01-15 10:30:00",
"read_at": "2024-01-15 11:00:00",
"created_at": "2024-01-15 10:30:00",
"mailsender_id": "mail_xyz789"
}
}
| الرمز | الرسالة | الوصف |
|---|---|---|
400 |
Bad Request | البيانات الم provided غير صالحة |
401 |
Unauthorized | رمز غير صالح أو مفقود |
403 |
Forbidden |
ليس لديك إذن لأداء هذا الإجراء يُعاد أيضًا عندما لا يمتلك المستخدم رصيدًا/رسائل بريد إلكتروني متبقية متاحة. |
404 |
Not Found | الموارد غير موجودة. تحقق من وجود المورد المطلوب (على سبيل المثال، بريد إلكتروني مع tracking_id المحدد). |
405 |
Method Not Allowed | طريقة HTTP غير مسموحة |
429 |
Too Many Requests | طلبات كثيرة جدًا. تم تجاوز حد المعدل. |
500 |
Internal Server Error | خطأ داخلي في الخادم |
لدي واجهة برمجة التطبيقات القيود التالية: