- Arama sayfası
- İçindekiler
SMTP Entegrasyon Örnekleri
Önsöz
Bu kılavuz, çeşitli programlama dilleri, çerçeveler ve e-posta istemcileri kullanarak Forward Email'in SMTP hizmetiyle nasıl entegre olunacağına dair ayrıntılı örnekler sunar. SMTP hizmetimiz, güvenilir, güvenli ve mevcut uygulamalarınızla entegre edilmesi kolay olacak şekilde tasarlanmıştır.
Forward Email'in SMTP İşlemesi Nasıl Çalışır?
Entegrasyon örneklerine dalmadan önce, SMTP hizmetimizin e-postaları nasıl işlediğini anlamak önemlidir:
E-posta Kuyruğu ve Yeniden Deneme Sistemi
SMTP yoluyla sunucularımıza bir e-posta gönderdiğinizde:
- İlk İşleme: E-posta doğrulandı, kötü amaçlı yazılımlara karşı tarandı ve spam filtrelerine karşı kontrol edildi
- Akıllı Sıraya Alma: E-postalar teslim edilmek üzere gelişmiş bir kuyruk sistemine yerleştirilir
- Akıllı Yeniden Deneme Mekanizması: Teslimat geçici olarak başarısız olursa, sistemimiz:
- Hata yanıtını bizimkini kullanarak analiz edin
getBounceInfo
işlev - Sorunun geçici (örneğin, "daha sonra tekrar deneyin", "geçici olarak ertelendi") veya kalıcı (örneğin, "kullanıcı bilinmiyor") olup olmadığını belirleyin
- Geçici sorunlar için e-postayı yeniden deneme için işaretleyin
- Kalıcı sorunlar için bir geri bildirim oluşturun
- Hata yanıtını bizimkini kullanarak analiz edin
- 5 Günlük Yeniden Deneme Süresi: 5 güne kadar teslimatı tekrar deniyoruz (Postfix gibi endüstri standartlarına benzer şekilde), geçici sorunların çözülmesi için zaman veriyoruz
- Teslimat Durumu Bildirimleri:Gönderenler e-postalarının durumuyla ilgili bildirimler alır (teslim edildi, gecikti veya geri döndü)
[!NOTE] Başarılı teslimattan sonra, giden SMTP e-posta içeriği güvenlik ve gizlilik için yapılandırılabilir bir saklama süresinden (varsayılan 30 gün) sonra sansürlenir. Yalnızca başarılı teslimatı belirten bir yer tutucu mesaj kalır.
Güvenilirlik için Aptallara Karşı Koruma Sağlandı
Sistemimiz çeşitli uç durumları ele alacak şekilde tasarlanmıştır:
- Bir engelleme listesi algılanırsa, e-posta otomatik olarak yeniden denenecektir
- Ağ sorunları oluşursa teslimat yeniden denenecektir
- Alıcının posta kutusu doluysa sistem daha sonra tekrar deneyecektir
- Alıcı sunucu geçici olarak kullanılamıyorsa, denemeye devam edeceğiz
Bu yaklaşım, gizliliği ve güvenliği koruyarak teslimat oranlarını önemli ölçüde iyileştirir.
Node.js Entegrasyonu
Nodemailer'ı Kullanma
Not postacısı Node.js uygulamalarından e-posta göndermek için popüler bir modüldür.
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();
Express.js kullanımı
Forward Email SMTP'yi bir Express.js uygulamasıyla nasıl entegre edebileceğinizi öğrenin:
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}
);
});
Python Entegrasyonu
smtplib'i kullanma
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
Email configurationsender_email = "your-username@your-domain.com"
receiver_email = "recipient@example.com"
password = "your-password"
Create messagemessage = 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 messagetext = "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 objectspart1 = MIMEText(text, "plain")
part2 = MIMEText(html, "html")
Add HTML/plain-text parts to MIMEMultipart messagemessage.attach(part1)
message.attach(part2)
Send emailtry:
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}")
Django'yu Kullanma
Django uygulamaları için aşağıdakileri ekleyin: 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'
Daha sonra görünümlerinize göre e-postalar gönderin:
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!')
PHP Entegrasyonu
PHPMailer'ı Kullanma
<?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 = '<b>Hello world!</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}";
}
Laravel Kullanımı
Laravel uygulamaları için, şunu güncelleyin: .env
dosya:
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}"
Daha sonra Laravel'in Mail arayüzünü kullanarak e-postalar gönderin:
<?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!';
}
}
Ruby Entegrasyonu
Ruby Mail Gem'i Kullanma
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!"
Java Entegrasyonu
Java Mail API'sini kullanma
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("<b>Hello world!</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);
}
}
}
E-posta İstemcisi Yapılandırması
yıldırım kuşu
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]
- Thunderbird'ü açın ve Hesap Ayarları'na gidin
- "Hesap Eylemleri"ne tıklayın ve "Posta Hesabı Ekle"yi seçin
- Adınızı, e-posta adresinizi ve şifrenizi girin
- "Manuel Yapılandırma"ya tıklayın ve aşağıdaki bilgileri girin:
- Gelen Sunucusu:
- IMAP: imap.forwardemail.net, Bağlantı Noktası: 993, SSL/TLS
- POP3: pop3.forwardemail.net, Bağlantı Noktası: 995, SSL/TLS
- Giden Sunucu (SMTP): smtp.forwardemail.net, Port: 465, SSL/TLS
- Kimlik doğrulama: Normal Parola
- Kullanıcı adı: tam e-posta adresiniz
- Gelen Sunucusu:
- "Test"e ve ardından "Bitti"ye tıklayın
elma postası
- Postayı açın ve Posta > Tercihler > Hesaplar'a gidin
- Yeni bir hesap eklemek için "+" düğmesine tıklayın
- "Diğer Posta Hesabı"nı seçin ve "Devam"a tıklayın
- Adınızı, e-posta adresinizi ve şifrenizi girin, ardından "Oturum Aç"a tıklayın
- Otomatik kurulum başarısız olursa, aşağıdaki bilgileri girin:
- Gelen Posta Sunucusu: imap.forwardemail.net (veya POP3 için pop3.forwardemail.net)
- Giden Posta Sunucusu: smtp.forwardemail.net
- Kullanıcı adı: tam e-posta adresiniz
- Şifre: şifreniz
- Kurulumu tamamlamak için "Oturum Aç"a tıklayın
Gmail (Postaları Şu Şekilde Gönder)
- Gmail'i açın ve Ayarlar > Hesaplar ve İçe Aktarma'ya gidin
- "Postaları şu şekilde gönder" altında "Başka bir e-posta adresi ekle"ye tıklayın
- Adınızı ve e-posta adresinizi girin, ardından "Sonraki Adım"a tıklayın
- Aşağıdaki SMTP sunucusu ayrıntılarını girin:
- SMTP Sunucusu: smtp.forwardemail.net
- Liman: 465
- Kullanıcı adı: tam e-posta adresiniz
- Şifre: şifreniz
- "SSL kullanarak güvenli bağlantı" seçeneğini seçin
- "Hesap Ekle"ye tıklayın ve e-posta adresinizi doğrulayın
Sorun giderme
Yaygın Sorunlar ve Çözümleri
-
Kimlik doğrulama başarısız oldu
- Kullanıcı adınızı (tam e-posta adresi) ve şifrenizi doğrulayın
- Doğru portu kullandığınızdan emin olun (SSL/TLS için 465)
- Hesabınızda SMTP erişiminin etkin olup olmadığını kontrol edin
-
Bağlantı Zaman Aşımı
- İnternet bağlantınızı kontrol edin
- Güvenlik duvarı ayarlarının SMTP trafiğini engellemediğini doğrulayın
- Farklı bir port kullanmayı deneyin (STARTTLS ile 587)
-
Mesaj Reddedildi
- "Kimden" adresinizin kimliği doğrulanmış e-postanızla eşleştiğinden emin olun
- IP'nizin kara listede olup olmadığını kontrol edin
- Mesajınızın içeriğinin spam filtrelerini tetiklemediğini doğrulayın
-
TLS/SSL Hataları
- Uygulamanızı/kütüphanenizi modern TLS sürümlerini destekleyecek şekilde güncelleyin
- Sisteminizin CA sertifikalarının güncel olduğundan emin olun
- Açık TLS'yi örtük TLS yerine deneyin
Yardım Alma
Burada ele alınmayan sorunlarla karşılaşırsanız lütfen:
- Bizim kontrol edin SSS sayfası sık sorulan sorular için
- İncelememiz e-posta teslimi hakkında blog yazısı detaylı bilgi için
- Destek ekibimizle iletişime geçin support@forwardemail.net
Ek Kaynaklar
Çözüm
Forward Email'in SMTP hizmeti, uygulamalarınızdan ve e-posta istemcilerinizden e-posta göndermek için güvenilir, güvenli ve gizlilik odaklı bir yol sağlar. Akıllı kuyruk sistemimiz, 5 günlük yeniden deneme mekanizmamız ve kapsamlı teslimat durumu bildirimlerimizle e-postalarınızın hedeflerine ulaşacağından emin olabilirsiniz.
Daha gelişmiş kullanım durumları veya özel entegrasyonlar için lütfen destek ekibimizle iletişime geçin.