【发布时间】:2018-12-12 01:52:46
【问题描述】:
我想在本地主机上发送一封电子邮件,但我真的不知道该怎么做。
我尝试了一些不同的方法,但它不起作用。
我使用 PHPMailer https://github.com/PHPMailer/PHPMailer/tree/5.2-stable 作为邮件服务器,但我认为这可能是错误的实现。
不知道这是否重要,但我使用 MAMP。
这是我目前拥有的:
<?php
if (isset($_POST['submit'])) {
require("PHPMailer/PHPMailerAutoload.php");
ini_set("SMTP","ssl://smtp.gmail.com");
ini_set("smtp_port","465");
$mail = new PHPMailer();
$mail->SMTPAuth = true;
$mail->Host = "smtp.gmail.com";
$mail->SMTPSecure = "ssl";
$mail->SMTPAuth = true;
$mail->Username = "mail account";
$mail->Password = "password for account";
$mail->Port = "465";
$mail->setFrom('receiver mail', 'TEST');
$mail->addReplyTo('receiver mail', 'TEST');
$mail->addAddress('recipient mail');
$mail->Port = "465";
$mail->isHTML(true);
$mail->Subject = "test";
// get text from input fields
$email = $_POST['email'];
$name = $_POST['name'];
$address = $_POST['address'];
$city = $_POST['city'];
$number = $_POST['number'];
$textarea = $_POST['textarea'];
$bodyContent =
"<p>Name: " . $name . "</p>
<p>E-Mail: " . $email . "</p>
<p>Telefonnummer: " . $number . "</p>
<p>Adresse: " . $address . $city . "</p>
<p>Anliegen: " . $textarea . "</p>";
$mail->Body = $bodyContent;
if (!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error' . $mail->ErrorInfo;
} else {
echo 'Message has been sent.';
}
}
?>
【问题讨论】:
-
怎么不起作用?你有错误吗?如果是这样,它是什么?如果没有,你期望会发生什么?会发生什么?
-
您是否阅读了 PHPMailer 文档中的 Gmail example?
-
@JohnConde 我没有收到错误消息。带有回声的功能甚至不会被执行。我只希望在单击提交按钮后将一封邮件发送给收件人,其中包含输入字段中的所有信息。
-
@P.Schmidt 如果两者都没有“无法发送消息。”也不是“消息已发送”。被退回,那么你在到达那一步之前就失败了。检查你的 php 错误日志。
标签: php html email localhost mamp