我很难理解如何使用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个参数(主机,用户,密码,端口)有关而无法正常工作。我几个月前开始并坐在上面,现在我完全迷失了如何解决它。
我是否必须为每个客户端验证各种发件人帐户?我被卡住了。使用此功能的正确方法是什么?
答案 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.';
}
?>