2015-03-02 10 views
8

Chcę wysyłać pocztę za pośrednictwem poczty php na usłudze Amazon SES, Korzystając z poczty PHP, ale nie mogę wysyłać wiadomości. Weryfikuję już mój email_id. Używam tego samouczka jako odnośnika http://www.codeproject.com/Articles/786596/How-to-Use-Amazon-SES-to-Send-Email-from-PHP. Ale to nie wysyła wiadomości z serwisów Amazon SES, proszę powiedz mi, gdzie się mylę? Poprzednio używałem tego samego identyfikatora do wysyłania wiadomości z lokalnego serwera XAMPP. To działało.Jak wysłać pocztę za pośrednictwem wiadomości php w serwisie Amazon SES?

sendmail.php

<?php > 
function Send_Mail($to,$subject,$body) 
{ 
    require 'class.phpmailer.php'; 
    $from = "Senders_Email_Address"; 
    $mail = new PHPMailer(); 
    $mail->IsSMTP(true); // SMTP 
    $mail->SMTPAuth = true; // SMTP authentication 
    $mail->Mailer = "smtp"; 
    $mail->Host= "tls://email-smtp.us-east.amazonaws.com"; // Amazon SES 
    $mail->Port = 465; // SMTP Port 
    $mail->Username = "Senders_Email_Address"; // SMTP Username 
    $mail->Password = "MyPassword"; // SMTP Password 
    $mail->SetFrom($from, 'From Name'); 
    $mail->AddReplyTo($from,'Senders_Email_Address'); 
    $mail->Subject = $subject; 
    $mail->MsgHTML($body); 
    $address = $to; 
    $mail->AddAddress($address, $to); 
    if(!$mail->Send()) 
     return false; 
    else 
     return true; 
} 
?> 

index.php

<html> 
<body>  
<h1>Welcome to my home page!</h1> 
<p>Some text.</p> 
<p>Some more text.</p> 
<?php 
require 'sendMail.php'; 
$to = "Senders_Email_Address"; 
$subject = "Test Mail Subject"; 
$body = "Hi<br/>Test Mail<br/>Amazon SES"; // HTML tags 
Send_Mail($to,$subject,$body); 
?> 

</body> 
</html> 

sendmail.php, class.phpmailer.php, class.smtp.php i index.php są w tym samym katalogu.

Odpowiedz

6

Neelabh, czegoś brakuje. spróbuj następujących:

<?php > 
function Send_Mail($to,$subject,$body) 
{ 
require 'class.phpmailer.php'; 
$from = "verified_email address"; 
$mail = new PHPMailer(); 
$mail->IsSMTP(true); // SMTP 
$mail->SMTPAuth = true; // SMTP authentication 
$mail->Mailer = "smtp"; 
$mail->Host= "tls://email-smtp.us-east.amazonaws.com"; // Amazon SES 
$mail->Port = 465; // SMTP Port 
$mail->Username = "Your_SMTP_Username 
"; // SMTP Username 
$mail->Password = "SMTP_Password"; // SMTP Password 
$mail->SetFrom($from, 'From Name'); 
$mail->AddReplyTo($from,'yourdomain.com or verified email address'); 
$mail->Subject = $subject; 
$mail->MsgHTML($body); 
$address = $to; 
$mail->AddAddress($address, $to); 

if(!$mail->Send()) 
return false; 
else 
return true; 

} 
?> 

również utworzyć plik indeksu jak poniżej:

<?php 
require 'Send_Mail.php'; 
$to = "[email protected]"; 
$subject = "Test Mail Subject"; 
$body = "Hi<br/>Test Mail<br/>Amazon SES"; // HTML tags 
Send_Mail($to,$subject,$body); 
?> 

Pamiętaj, że jeśli masz tylko dostęp do piaskownicy SES, to adres e-mail odbiorcy musi również zostać zweryfikowane. lub możesz zweryfikować swoją domenę. Daj mi znać, czy to działa.

+0

kliknij tutaj, aby uzyskać dostęp do [class.php.mailer] (http://www.johnboy.com/blog/sending-email-with-amazon-ses-smtp-and-phpmailer) – Mark

Powiązane problemy