使用PHPMailer发送电子邮件

时间:2017-07-02 14:52:27

标签: php smtp phpmailer

我很难理解如何使用PHPMailer发送电子邮件。

我有多个网站客户,我已经为每个客户实施了联系表。我可以将电子邮件发送到我自己的电子邮件地址,但不能发送给他们。

这是我写的功能。

function sendSMTP($host, $usr, $pwd, $port, $fromAddr, $fromName, 
$replyAddr, $replyName, $addr, $subject, $body)
{
$mail = new PHPMailer(true);

$mail->SMTPDebug  = 1; 

$mail->isSMTP();
$mail->Host         = $host;
$mail->SMTPAuth     = true;
$mail->Username     = $usr;
$mail->Password     = $pwd;
$mail->SMTPSecure   = 'ssl';
$mail->Port         = $port;

$mail->setFrom($fromAddr, $fromName);
$mail->addReplyTo($replyAddr, $replyName);

$mail->addAddress($addr);

$mail->isHTML(true);

$mail->Subject = $subject;
$mail->Body    = $body;
}

我感觉它因为与前4个参数(主机,用户,密码,端口)有关而无法正常工作。我几个月前开始并坐在上面,现在我完全迷失了如何解决它。

我是否必须为每个客户端验证各种发件人帐户?我被卡住了。使用此功能的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

我使用PHPMailer成功地从我的localhost发送电子邮件到我的或其他电子邮件地址。 如果使用gmail设置HOST = smtp.gmail.com, 在USER,PASSWORD中设置您的电子邮件地址和密码。 我通过谷歌'gmail端口号'找到了PORT号码。希望它会有所帮助。

<?php

require 'PHPMailerAutoload.php';

$mail = new PHPMailer;
$mail->isSMTP();                            // Set mailer to use SMTP
$mail->Host = 'smtp.gmail.com';              // Specify main and backup SMTP servers
$mail->SMTPAuth = true;                     // Enable SMTP authentication
$mail->Username = 'example@gmail.com'; // your email id
$mail->Password = 'password'; // your password
$mail->SMTPSecure = 'tls';                  
$mail->Port = 587;     //587 is used for Outgoing Mail (SMTP) Server.
$mail->setFrom('sendfrom@gmail.com', 'Name');
$mail->addAddress('sendto@yahoo.com');   // Add a recipient
$mail->isHTML(true);  // Set email format to HTML

$bodyContent = '<h1>HeY!,</h1>';
$bodyContent .= '<p>This is a email that Radhika send you From LocalHost using PHPMailer</p>';
$mail->Subject = 'Email from Localhost by Radhika';
$mail->Body    = $bodyContent;
if(!$mail->send()) {
  echo 'Message was not sent.';
  echo 'Mailer error: ' . $mail->ErrorInfo;
} else {
  echo 'Message has been sent.';
}

?>