2016-08-04 144 views
4

我猜這個:如何通過PHP向GMail發送電子郵件?

<?php 

    $emailTo = '[email protected]'; 
    $subject = 'I hope this works!'; 
    $body = 'Blah'; 
    $headers='From: [email protected]' 

    mail($emailTo, $subject, $body, $headers); 

?> 

是不會削減它。我搜索了,我可以發送SMTP認證和郵件客戶端以及諸如PHPMailer的方案,以電子郵件的方式,但我沒有一個簡潔而直接的答案又那有幫助。基本上,我希望的方式來發送電子郵件到Gmail,Hotmail等(這將是我的電子郵件)從通過表單另一個電子郵件(發送者)在我的網站

問題:

  1. 我需要下載第三方庫到這個?
  2. 如果沒有,我怎麼可以改變上面的代碼,使其工作。

謝謝!

+3

是,只是去PHPMailer的或swiftmailer。 'mail()'是mickey-mouse垃圾,只能用於簡單/本地的東西。 –

+0

@MarcB真..不幸的是,即時通訊新的PHP和使用庫有困難的IM .. –

回答

4

使用PHPMailer的library.It比使用郵件的本地函數更好,因爲在PHPMailer的,你可以使用用戶身份驗證,以避免郵件發送到spam.You可以使用這個庫而無需配置郵件服務器。您可以在這個環節https://github.com/PHPMailer/PHPMailer

下載,見一個例子:

$mail    = new PHPMailer(); 

$mail->IsSMTP(); // telling the class to use SMTP 
$mail->Host  = "mail.yourdomain.com"; // SMTP server 
$mail->SMTPDebug = 2;      // enables SMTP debug information (for testing) 
              // 1 = errors and messages 
              // 2 = messages only 
$mail->SMTPAuth = true;     // enable SMTP authentication 
$mail->SMTPSecure = "tls";     
$mail->Host  = "smtp.gmail.com";  // SMTP server 
$mail->Port  = 587;     // SMTP port 
$mail->Username = "[email protected]"; // username 
$mail->Password = "yourpassword";   // password 

$mail->SetFrom('[email protected]', 'Test'); 

$mail->Subject = "I hope this works!"; 

$mail->MsgHTML('Blah'); 

$address = "[email protected]"; 
$mail->AddAddress($address, "Test"); 

if(!$mail->Send()) { 
    echo "Mailer Error: " . $mail->ErrorInfo; 
} else { 
    echo "Message sent!"; 
} 
+0

只是爲了澄清: SetFrom是發送者和AddReplyTo會是我,接收器,是嗎? 另外,AddReplyTo也可以等同於一個Gmail地址嗎? –

+0

在這種情況下,您不需要addReplyTo,SetFrom是發件人。接收者是$ mail-> AddAddress。 – msantos

+0

我明白了。謝謝!還有一件事: $ mail-> Host =「mail.yourdomain.com」; 通過YOURDOMAIN你的意思是網站的域或UR使用這種情況下,郵件域? –