【问题标题】:Sending email via PHP error通过 PHP 发送电子邮件错误
【发布时间】:2013-10-09 20:35:34
【问题描述】:

我是一个 php 初学者,我正在建立一个网站,网站应该让人们给我发电子邮件。问题是我从来不知道通过 php 发送电子邮件。我在网上查了一下,并尝试使用我找到的代码。问题是我的程序说它发送了电子邮件,但我从未碰巧收到电子邮件。我想可能是因为我正在使用 apache 服务器来测试我的 php,也许当我将它上传到真实服务器时它会起作用??(是的,这是一个问题)

以防万一,这是我的代码,它是我网站上的所有php代码,表格也可以正常工作,没有任何问题。

<?php
if (isset($_POST['name'])) {
$email = $_POST['email'];
$subject = $_POST['subject'];
$message = "From: " . $_POST['name'] . ", " . $_POST['email'] . "\n Message: " .    $_POST['message'];
try {
    mail("serdarufuk95@gmail.com", $subject, $message, " ");
    unset($_POST['name']);
    header("Location: success.php");

}
catch (PDOException $e)
{

    include 'index.html';
    exit();
}
exit();

} 
include 'contact2.php';

?>

代码有问题吗?还是我必须从图书馆或任何东西中调用某些东西,或者我是否缺少代码!帮我完成这项工作!当我执行它时,它会将我带到success.php,所以我认为我的代码没有任何问题,但你们知道得更好!

【问题讨论】:

  • PDOException 在那里做什么?
  • mail() 不会抛出异常。它只是在失败时返回一个布尔值 FALSE。 PHP 可能支持对象,但它本身并不是 OOP。没有核心 PHP 函数会抛出异常,但许多附加库会抛出异常,例如PDO 或 mysqli。
  • 感谢大家没有给出解决方案,但告诉我 mail() 不会抛出异常 -_-

标签: php email


【解决方案1】:

如果尚未设置服务器的邮件配置,则上传到真实服务器后可能无法正常工作。所以我建议你使用更好更简单的版本来通过 PHP 发送邮件:PHPMailer

require_once("class.phpmailer.php");
$mail = new PHPMailer();

$mail->AddAddress("mail@domain.com","Display name");
$mail->Subject= "Mail subject";
$mail->Body= "Mail content";

$mail->IsSMTP();
$mail->Host = "mail.domain.com";
$mail->SMTPAuth = true;
$mail->Username = "formmail@domain.com";
$mail->Password = "123456";
$mail->IsHTML(true); //true if you want to send html content. false for plain text message
$mail->From = $_POST['Email'];
$mail->FromName = $_POST['Name'];
$mail->Send();

您可以下载课程clicking here

【讨论】:

  • 谢谢,我试试这个。这是给我解决方案的唯一答案。
  • 假设您已配置 邮件传输代理,它将与 Apache 一起使用,这超出了本问题的范围。
  • @user2864414 正如 acobster 所说,它将在 apache 上运行。我的方式
  • @user2864414 如果我的回答解决了你的问题,请签名作为回答,这样其他遇到同样问题的人也能轻松得到答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-20
  • 1970-01-01
  • 2014-09-14
  • 1970-01-01
  • 2010-11-22
  • 2010-10-09
  • 1970-01-01
相关资源
最近更新 更多