AI & Web Teknolojileri

AI ile Yapılan Siteye Kurumsal Mail Nasıl Bağlanır?

AI ile Yapılan Siteye Kurumsal Mail Nasıl Bağlanır? konusunda güvenli uygulama, doğrulama ve sık yapılan hatalar için UST Bilişim teknik rehberi.

AI ile Yapılan Siteye Kurumsal Mail Nasıl Bağlanır?Teknik bilgi • Uygulanabilir yaklaşım
AI ile Yapılan Siteye Kurumsal Mail Nasıl Bağlanır? konusunda güvenli uygulama, doğrulama ve sık yapılan hatalar için UST Bilişim teknik rehberi.

Web formundaki mesajın kurumsal posta kutunuza ulaşması için sunucuda SMTP bağlantısı gerekir. JavaScript içine SMTP parolası koymak yerine PHP backend kullanın. Bu rehber formun tamamını değil, SMTP taşıma katmanını CLI üzerinden doğrular.

1. Sağlayıcı bilgilerini hazırlayın

SMTP hostname, port, TLS türü, kullanıcı adı ve parolayı sağlayıcıdan alın. Örneğimiz 587/STARTTLS destekleyen hesap içindir. OAuth zorunlu sağlayıcıda normal kullanıcı/parola örneği yerine uygun OAuth akışını kullanın. Domain'in SPF/DKIM kayıtları da gönderen sağlayıcıyla eşleşmeli.

2. Kütüphaneyi ekleyin

Proje kökünde:

composer require phpmailer/phpmailer

SMTP_HOST, SMTP_USER, SMTP_PASS, MAIL_FROM, MAIL_TO ortam değerlerini sunucunun özel yapılandırmasına girin. MAIL_FROM yetkili göndereniniz, MAIL_TO size ait test alıcısı olmalı. Bu değerleri public HTML'e koymayın.

3. Web kökü dışında test dosyası

Proje kökünde smtp-test.php oluşturun. Yalnız CLI çalışmasına izin verdiği için web isteğiyle mesaj göndermez.

<?php
use PHPMailer\PHPMailer\PHPMailer;
require __DIR__ . '/vendor/autoload.php';
if (PHP_SAPI !== 'cli') { http_response_code(404); exit; }
$keys = ['SMTP_HOST', 'SMTP_USER', 'SMTP_PASS', 'MAIL_FROM', 'MAIL_TO'];
foreach ($keys as $key) {
    if (!getenv($key)) { fwrite(STDERR, 'Eksik ayar: ' . $key . PHP_EOL); exit(1); }
}
$mail = new PHPMailer(true);
try {
    $mail->isSMTP();
    $mail->Host = getenv('SMTP_HOST');
    $mail->SMTPAuth = true;
    $mail->Username = getenv('SMTP_USER');
    $mail->Password = getenv('SMTP_PASS');
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
    $mail->Port = 587;
    $mail->Timeout = 10;
    $mail->CharSet = 'UTF-8';
    $mail->setFrom(getenv('MAIL_FROM'), 'Web Sitesi');
    $mail->addAddress(getenv('MAIL_TO'));
    $mail->Subject = 'SMTP bağlantı testi';
    $mail->Body = 'Bu, yetkili test gönderimidir.';
    $mail->send();
    echo "SMTP tarafından kabul edildi.\n";
} catch (Throwable $e) {
    fwrite(STDERR, "Gönderim başarısız; sunucu bağlantı ve hesap ayarlarını kontrol edin.\n");
    exit(1);
}
php smtp-test.php

Başarı mesajı inbox garantisi değildir; alıcıda mesajı ve Authentication-Results içindeki SPF/DKIM/DMARC sonuçlarını inceleyin. 465 isteyen sağlayıcıda port ile ENCRYPTION_SMTPS birlikte değiştirilir; SSL doğrulamasını kapatmayın.

4. Form işlemine bağlayın

Gerçek POST endpoint'inde önce CSRF, alan doğrulama, boyut sınırı ve rate limit uygulayın. From sabit yetkili adresiniz kalsın; doğrulanmış kullanıcı e-postasını addReplyTo ile ekleyin. Alıcı adresini kullanıcıya seçtirmek açık mail gönderim aracına dönüşebilir. Gönderim başarısızsa kullanıcıya doğru mesaj gösterip sınırlı tekrar kuyruğu tasarlayın.

5. Hata ayrımı

Timeout için DNS/port çıkış kuralı; auth hatası için hesap/OAuth; kabul edilmiş ama gelmeyen mail için spam ve sağlayıcı teslim logunu kontrol edin. Test bittikten sonra dosyayı kaldırın. Debug dökümünü herkese açık yanıt veya loga basmayın.

UST Bilişim Yaklaşımı

Bilgiyi uygulanabilir projeye dönüştürelim.

İhtiyacınızı teknik, operasyonel ve ticari açıdan değerlendirip doğru çözüm yol haritasını birlikte oluşturalım.

Projenizi Anlatın