【问题标题】:Emailing via php, and accessing php.ini通过 php 发送电子邮件并访问 php.ini
【发布时间】:2015-07-30 11:16:00
【问题描述】:

我的代码非常好(但无论如何我都会在最后包含它)但是当我使用内置的 php mail() 函数并且它返回 true 时,我没有收到任何电子邮件。

我已经阅读了类似问题的其他答案,但我仍然遇到困难,因为输出日志为空并且我无权访问(或者更确切地说不知道如何访问)php.ini 文件.根据 phpinfo() 页面,它位于/etc/php55.ini.d/php.ini,但我不知道它到底在哪里。我已经联系了我的提供商,他们没有阻止 php 发送电子邮件。

所以这是一个非常新手的问题:如何访问php.ini 文件以便查看它是否配置正确?

PHP 代码:

<?php
    session_start();
    $to = "a valid email";
    $subject = "Account Verification";
    $message = "Content removed";
    $headers = "MIME-Version: 1.0" . "\r\n";
    $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
    $headers .= 'From: <noreply@thefunnyzone.co.uk>' . "\r\n";
    $retval = mail ($to,$subject,$message,$header);
    if( $retval == true ){echo "Message sent successfully...";}
    else{echo "Message could not be sent...";}
?>

【问题讨论】:

  • 你有 SSH 工具吗?或者您的供应商是否提供控制面板?您查看过错误日志吗?
  • 我得到了一个控制面板,我看不到任何错误日志。存在的一个日志文件一直是空白的。如果我请求,我可以获得 SSH 服务器访问权限。
  • 我感觉它要么没有正确发送,要么被垃圾邮件过滤器捕获。
  • 好的,我怎么知道这是否发生了?

标签: php email configuration


【解决方案1】:

我会推荐使用 PHPMailer (https://github.com/Synchro/PHPMailer) 。它更易于使用,并且是使用 PHP 发送电子邮件的标准。访问 github 页面并查看课程功能以了解更多信息。 下面是一个例子。

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

if (!isset($error_message)) {
    $email_body = "";
    $email_body = $email_body . "Name: " . $name . "<br>";
    $email_body = $email_body . "Email: " . $email . "<br>";
    $email_body = $email_body . "Message: " . $message;

    $mail->SetFrom($email, $name);
    $mail->AddAddress($address, "Joe User");
    $mail->Subject    = $subject . $name;
    $mail->MsgHTML($email_body); 

    // if the email is sent successfully, redirect to a thank you page;
    // otherwise, set a new error message
    if($mail->Send()) {
      //set success message
    } else {
      //set error meesage        }

}

【讨论】:

  • 非常好的有效替代方案,如果没有其他选择,我会接受这个作为我的答案。我真的不想使用别人的作品,我喜欢自己制作网站(即不包含来自外部网站或我没有制作的文档)。
  • 我理解您对使用第三方库的担忧,但对于这种情况,您只需在项目中使用一个类/文件 - (github.com/Synchro/PHPMailer/blob/master/class.phpmailer.php)。该类还处理内置邮件功能所具有的许多错误。所以总的来说,它创造了更好的软件和最终用户体验,这最终是最重要的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-22
  • 2010-10-09
  • 1970-01-01
  • 2014-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多