Esempi di integrazione SMTP

Questa guida fornisce esempi dettagliati su come integrare il servizio SMTP di Forward Email utilizzando vari linguaggi di programmazione, framework e client di posta elettronica. Il nostro servizio SMTP è progettato per essere affidabile, sicuro e facile da integrare con le tue applicazioni esistenti.

Prima di addentrarci negli esempi di integrazione, è importante capire come il nostro servizio SMTP elabora le email:

Sistema di coda e ripetizione e-mail

Quando invii un'e-mail tramite SMTP ai nostri server:

  1. Elaborazione iniziale: L'email viene convalidata, analizzata per rilevare malware e controllata rispetto ai filtri antispam
  2. Accodamento intelligente: Le e-mail vengono inserite in un sofisticato sistema di coda per la consegna
  3. Meccanismo di ripetizione intelligente: Se la consegna fallisce temporaneamente, il nostro sistema:
    • Analizza la risposta di errore utilizzando il nostro getBounceInfo funzione
    • Determina se il problema è temporaneo (ad esempio, "riprova più tardi", "temporaneamente rinviato") o permanente (ad esempio, "utente sconosciuto")
    • Per problemi temporanei, contrassegna l'e-mail per un nuovo tentativo
    • Per problemi permanenti, genera una notifica di rimbalzo
  4. Periodo di ripetizione di 5 giorni: Ritentiamo la consegna per un massimo di 5 giorni (simile agli standard del settore come Postfix), dando il tempo ai problemi temporanei di risolversi
  5. Notifiche sullo stato di consegna: I mittenti ricevono notifiche sullo stato delle loro e-mail (recapitate, ritardate o respinte)

[!NOTE] Dopo la consegna riuscita, il contenuto dell'e-mail SMTP in uscita viene censurato dopo un periodo di conservazione configurabile (predefinito 30 giorni) per motivi di sicurezza e privacy. Rimane solo un messaggio segnaposto che indica la consegna riuscita.

Affidabilità a prova di manichino

Il nostro sistema è progettato per gestire vari casi limite:

  • Se viene rilevata una lista di blocco, l'e-mail verrà automaticamente ritentata
  • Se si verificano problemi di rete, la consegna verrà ritentata
  • Se la casella di posta del destinatario è piena, il sistema riproverà più tardi
  • Se il server ricevente non è temporaneamente disponibile, continueremo a provare

Questo approccio migliora significativamente i tassi di consegna, mantenendo al contempo la privacy e la sicurezza.

Utilizzo di Nodemailer

Nota mailer è un modulo popolare per l'invio di e-mail dalle applicazioni Node.js.

const nodemailer = require('nodemailer');

// Create a transporter object const transporter = nodemailer.createTransport({ host: 'smtp.forwardemail.net', port: 465, secure: true, // Use TLS auth: { user: 'your-username@your-domain.com', pass: 'your-password' } });

// Send mail with defined transport object async function sendEmail() { try { const info = await transporter.sendMail({ from: '"Your Name" <your-username@your-domain.com>', to: 'recipient@example.com', subject: 'Hello from Forward Email', text: 'Hello world! This is a test email sent using Nodemailer and Forward Email SMTP.', html: '<b>Hello world!</b> This is a test email sent using Nodemailer and Forward Email SMTP.' });

console.log('Message sent: %s', info.messageId);

} catch (error) { console.error('Error sending email:', error); } }

sendEmail();

Utilizzo di Express.js

Ecco come integrare Forward Email SMTP con un'applicazione Express.js:

const express = require('express');
const nodemailer = require('nodemailer');
const app = express();
const port = 3000;

app.use(express.json());

// Configure email transporter const transporter = nodemailer.createTransport({ host: 'smtp.forwardemail.net', port: 465, secure: true, auth: { user: 'your-username@your-domain.com', pass: 'your-password' } });

// API endpoint for sending emails app.post('/send-email', async (req, res) => { const { to, subject, text, html } = req.body;

try { const info = await transporter.sendMail({ from: '"Your App" <your-username@your-domain.com>', to, subject, text, html });

res.status(200).json({
  success: true,
  messageId: info.messageId
});

} catch (error) { console.error('Error sending email:', error); res.status(500).json({ success: false, error: error.message }); } });

app.listen(port, () => { console.log(Server running at http://localhost:${port}); });

Utilizzo di smtplib

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

Email configuration

sender_email = "your-username@your-domain.com" receiver_email = "recipient@example.com" password = "your-password"

Create message

message = MIMEMultipart("alternative") message["Subject"] = "Hello from Forward Email" message["From"] = sender_email message["To"] = receiver_email

Create the plain-text and HTML version of your message

text = "Hello world! This is a test email sent using Python and Forward Email SMTP." html = "<html><body><b>Hello world!</b> This is a test email sent using Python and Forward Email SMTP.</body></html>"

Turn these into plain/html MIMEText objects

part1 = MIMEText(text, "plain") part2 = MIMEText(html, "html")

Add HTML/plain-text parts to MIMEMultipart message

message.attach(part1) message.attach(part2)

Send email

try: server = smtplib.SMTP_SSL("smtp.forwardemail.net", 465) server.login(sender_email, password) server.sendmail(sender_email, receiver_email, message.as_string()) server.quit() print("Email sent successfully!") except Exception as e: print(f"Error sending email: {e}")

Utilizzo di Django

Per le applicazioni Django, aggiungi quanto segue al tuo settings.py:

# Email settings
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.forwardemail.net'
EMAIL_PORT = 465
EMAIL_USE_SSL = True
EMAIL_HOST_USER = 'your-username@your-domain.com'
EMAIL_HOST_PASSWORD = 'your-password'
DEFAULT_FROM_EMAIL = 'your-username@your-domain.com'

Quindi invia e-mail nelle tue visualizzazioni:

from django.core.mail import send_mail

def send_email_view(request): send_mail( 'Subject here', 'Here is the message.', 'from@your-domain.com', ['to@example.com'], fail_silently=False, html_message='<b>Here is the HTML message.</b>' ) return HttpResponse('Email sent!')

Utilizzo di PHPMailer

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'vendor/autoload.php';

$mail = new PHPMailer(true);

try { // Server settings $mail->isSMTP(); $mail->Host = 'smtp.forwardemail.net'; $mail->SMTPAuth = true; $mail->Username = 'your-username@your-domain.com'; $mail->Password = 'your-password'; $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; $mail->Port = 465;

// Recipients
$mail->setFrom('your-username@your-domain.com', 'Your Name');
$mail->addAddress('recipient@example.com', 'Recipient Name');
$mail->addReplyTo('your-username@your-domain.com', 'Your Name');

// Content
$mail->isHTML(true);
$mail->Subject = 'Hello from Forward Email';
$mail->Body    = '&#x3C;b>Hello world!&#x3C;/b> This is a test email sent using PHPMailer and Forward Email SMTP.';
$mail->AltBody = 'Hello world! This is a test email sent using PHPMailer and Forward Email SMTP.';

$mail->send();
echo 'Message has been sent';

} catch (Exception $e) { echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}"; }

Utilizzo di Laravel

Per le applicazioni Laravel, aggiorna il tuo .env file:

MAIL_MAILER=smtp
MAIL_HOST=smtp.forwardemail.net
MAIL_PORT=465
MAIL_USERNAME=your-username@your-domain.com
MAIL_PASSWORD=your-password
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=your-username@your-domain.com
MAIL_FROM_NAME="${APP_NAME}"

Quindi invia le email utilizzando la facciata Mail di Laravel:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request; use Illuminate\Support\Facades\Mail; use App\Mail\WelcomeEmail;

class EmailController extends Controller { public function sendEmail() { Mail::to('recipient@example.com')->send(new WelcomeEmail());

    return 'Email sent successfully!';
}

}

Utilizzo di Ruby Mail Gem

require 'mail'

Mail.defaults do delivery_method :smtp, { address: 'smtp.forwardemail.net', port: 465, domain: 'your-domain.com', user_name: 'your-username@your-domain.com', password: 'your-password', authentication: 'plain', enable_starttls_auto: true, ssl: true } end

mail = Mail.new do from 'your-username@your-domain.com' to 'recipient@example.com' subject 'Hello from Forward Email'

text_part do body 'Hello world! This is a test email sent using Ruby Mail and Forward Email SMTP.' end

html_part do content_type 'text/html; charset=UTF-8' body '<b>Hello world!</b> This is a test email sent using Ruby Mail and Forward Email SMTP.' end end

mail.deliver! puts "Email sent successfully!"

Utilizzo dell'API Java Mail

import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;

public class SendEmail { public static void main(String[] args) { // Sender's email and password final String username = "your-username@your-domain.com"; final String password = "your-password";

    // SMTP server properties
    Properties props = new Properties();
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.starttls.enable", "true");
    props.put("mail.smtp.host", "smtp.forwardemail.net");
    props.put("mail.smtp.port", "465");
    props.put("mail.smtp.socketFactory.port", "465");
    props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

    // Create session with authenticator
    Session session = Session.getInstance(props,
        new javax.mail.Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(username, password);
            }
        });

    try {
        // Create message
        Message message = new MimeMessage(session);
        message.setFrom(new InternetAddress(username));
        message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("recipient@example.com"));
        message.setSubject("Hello from Forward Email");

        // Create multipart message
        Multipart multipart = new MimeMultipart("alternative");

        // Text part
        BodyPart textPart = new MimeBodyPart();
        textPart.setText("Hello world! This is a test email sent using JavaMail and Forward Email SMTP.");

        // HTML part
        BodyPart htmlPart = new MimeBodyPart();
        htmlPart.setContent("&#x3C;b>Hello world!&#x3C;/b> This is a test email sent using JavaMail and Forward Email SMTP.", "text/html");

        // Add parts to multipart
        multipart.addBodyPart(textPart);
        multipart.addBodyPart(htmlPart);

        // Set content
        message.setContent(multipart);

        // Send message
        Transport.send(message);

        System.out.println("Email sent successfully!");

    } catch (MessagingException e) {
        throw new RuntimeException(e);
    }
}

}

Uccello di tuono

flowchart TD
    A[Open Thunderbird] --> B[Account Settings]
    B --> C[Account Actions]
    C --> D[Add Mail Account]
    D --> E[Enter Name, Email, Password]
    E --> F[Manual Config]
    F --> G[Enter Server Details]
    G --> H[SMTP: smtp.forwardemail.net]
    H --> I[Port: 465]
    I --> J[Connection: SSL/TLS]
    J --> K[Authentication: Normal Password]
    K --> L[Username: full email address]
    L --> M[Test and Create Account]
  1. Apri Thunderbird e vai su Impostazioni account
  2. Fai clic su "Azioni account" e seleziona "Aggiungi account di posta"
  3. Inserisci il tuo nome, indirizzo email e password
  4. Fare clic su "Configurazione manuale" e immettere i seguenti dettagli:
    • Server in arrivo:
      • IMAP: imap.forwardemail.net, Porta: 993, SSL/TLS
      • POP3: pop3.forwardemail.net, Porta: 995, SSL/TLS
    • Server in uscita (SMTP): smtp.forwardemail.net, Porta: 465, SSL/TLS
    • Autenticazione: Password normale
    • Nome utente: il tuo indirizzo email completo
  5. Fare clic su "Test" e poi su "Fatto"

Posta Apple

  1. Apri Mail e vai su Mail > Preferenze > Account
  2. Fare clic sul pulsante "+" per aggiungere un nuovo account
  3. Seleziona "Altro account di posta" e fai clic su "Continua"
  4. Inserisci il tuo nome, indirizzo email e password, quindi clicca su "Accedi"
  5. Se la configurazione automatica fallisce, inserisci i seguenti dettagli:
    • Server di posta in arrivo: imap.forwardemail.net (o pop3.forwardemail.net per POP3)
    • Server di posta in uscita: smtp.forwardemail.net
    • Nome utente: il tuo indirizzo email completo
    • Password: la tua password
  6. Fare clic su "Accedi" per completare la configurazione

Gmail (Invia posta come)

  1. Apri Gmail e vai su Impostazioni > Account e importazione
  2. In "Invia posta come", clicca su "Aggiungi un altro indirizzo email"
  3. Inserisci il tuo nome e indirizzo email, quindi clicca su "Passaggio successivo"
  4. Inserisci i seguenti dettagli del server SMTP:
    • Server SMTP: smtp.forwardemail.net
    • Porta: 465
    • Nome utente: il tuo indirizzo email completo
    • Password: la tua password
    • Seleziona "Connessione protetta tramite SSL"
  5. Fai clic su "Aggiungi account" e verifica il tuo indirizzo email

Problemi comuni e soluzioni

  1. Autenticazione non riuscita

    • Verifica il tuo nome utente (indirizzo email completo) e la password
    • Assicurati di utilizzare la porta corretta (465 per SSL/TLS)
    • Controlla se il tuo account ha l'accesso SMTP abilitato
  2. Timeout di connessione

    • Controlla la tua connessione Internet
    • Verificare che le impostazioni del firewall non blocchino il traffico SMTP
    • Prova a usare una porta diversa (587 con STARTTLS)
  3. Messaggio rifiutato

    • Assicurati che il tuo indirizzo "Da" corrisponda alla tua email autenticata
    • Controlla se il tuo IP è nella blacklist
    • Verifica che il contenuto del tuo messaggio non attivi i filtri antispam
  4. Errori TLS/SSL

    • Aggiorna la tua applicazione/libreria per supportare le versioni moderne di TLS
    • Assicurati che i certificati CA del tuo sistema siano aggiornati
    • Prova TLS esplicito invece di TLS implicito

Ottenere aiuto

Se riscontri problemi non trattati qui, ti preghiamo di:

  1. Controlla il nostro Pagina FAQ per domande comuni
  2. Rivedi il nostro post del blog sulla consegna della posta elettronica per informazioni dettagliate
  3. Contatta il nostro team di supporto all'indirizzo support@forwardemail.net

Il servizio SMTP di Forward Email fornisce un modo affidabile, sicuro e incentrato sulla privacy per inviare e-mail dalle tue applicazioni e dai tuoi client di posta elettronica. Con il nostro sistema di coda intelligente, il meccanismo di ripetizione di 5 giorni e le notifiche complete sullo stato di consegna, puoi essere certo che le tue e-mail raggiungeranno la loro destinazione.

Per casi d'uso più avanzati o integrazioni personalizzate, contatta il nostro team di supporto.