2016-08-04 139 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使用这种情况下,邮件域? –