Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用PHP发送邮件_Php_Email_Postfix Mta - Fatal编程技术网

用PHP发送邮件

用PHP发送邮件,php,email,postfix-mta,Php,Email,Postfix Mta,我正在尝试使用PHPmail()函数发送邮件。我已经安装了postfix,按照用户的建议修改了所有必需的文件 我还更改了我的php.ini文件,将sendmail\u路径设置为sendmail\u路径=“/usr/sbin/sendmail-t-I”,但仍然无法将邮件发送到我的hotmail帐户、yahoo或gmail。 编辑: 别再投票给我了;即使我也不知道我的问题。到目前为止,我所意识到的是,我的ISP正在阻止除80以外的所有端口。如果有人能帮我缓解这个问题,那将是我的荣幸。当你配置Post

我正在尝试使用PHP
mail()
函数发送邮件。我已经安装了postfix,按照用户的建议修改了所有必需的文件

我还更改了我的
php.ini
文件,将
sendmail\u路径设置为
sendmail\u路径=“/usr/sbin/sendmail-t-I”
,但仍然无法将邮件发送到我的hotmail帐户、yahoo或gmail。
编辑:
别再投票给我了;即使我也不知道我的问题。到目前为止,我所意识到的是,我的ISP正在阻止除80以外的所有端口。如果有人能帮我缓解这个问题,那将是我的荣幸。

当你配置Postfix时,你不需要
sendmail
,它也是一个类似MTA的Postfix。 因此php不使用
sendmail\u path=“/usr/sbin/sendmail-t-i”

您必须通过php连接到Postfix服务器(在localhost:25中侦听)才能发送邮件

下面是一个基于



请注意,这是一个梨形包装。

请具体说明。当你试图向你的雅虎或GMail帐户发送邮件时,你是否收到错误消息?你有弹跳吗?你的邮件日志里有什么东西吗?杰夫会亲自出现在你家门口喊“不!”吗?我在虚拟盒子上使用的是Ubuntu-10.04;我使用PHP mail()调用的邮件函数似乎工作正常。但是,我的收件箱中没有收到任何电子邮件。在我看来,我的主机中的SMTP端口(即Windows 7中的SMTP端口)被某种方式阻止,这可能会阻止我的邮件传递到hotmail服务器。现在你认为我想的方向正确吗?你是在住宅网络连接上运行的吗?很可能是您的ISP阻止了除邮件服务器之外的所有内容的TCP/25。
telnet gmail-smtp-in.l.google.com 25
(从
cmd
提示符)是否连接并为您提供
220 mx.google.com ESMTP…
banner?您需要通过ISP的邮件服务器将MTA配置为smarthost。我的ISP已阻止除端口80以外的所有内容,这很遗憾,但却是真的。没有到gmail smtp的telnet。。。给我的只是连接错误,没有更多。那么,在我的主机操作系统上有什么我必须更改的,或者我必须将Ubuntu上的Postfix重新配置为smarthost吗?我是新手,所以请耐心。你需要在Ubuntu上重新配置后缀。如果你需要这方面的帮助,可以在Ubuntu网站上询问。谢谢你的回答,伙计。我手头有一个新问题。我无法在windows 7上打开端口25。我在windows防火墙的入站规则中添加了例外,即使在端口25上telnet到localhost时,也会出现连接错误。你遇到这个问题了吗我使用了这个网站上的工具来查看我的端口25是否打开,它说只有端口80打开。顺便说一句,我使用了这个网站上关于打开端口25的逐字描述:。任何关于打开端口25的帮助都将不胜感激。@FewTem您已经在Ubuntu上配置了后缀。为什么要从Windows连接它?我以为Ubuntu和我的Windows主机使用相同的端口,这就是为什么;无论如何,谢谢你的提醒。我得到了这个错误:很抱歉,我是php新手,所以不能从中获得太多。严格标准:第27行的/opt/lampp/htdocs/1/mailtosend.php中不应静态调用非静态方法PEAR::isError(),无法对smtp进行身份验证server@Few将
php.ini中的
error\u reporting
设置设置为
E\u ALL^E\u STRICT
<?php

    require_once "Mail.php";

    $from = "<from.gmail.com>";
    $to = "<to.yahoo.com>";
    $subject = "Hi!";
    $body = "Hi,\n\nHow are you?";

    $host = "localhost";
    $port = "25";
    $username = "<myaccount.gmail.com>";
    $password = "password";

    $headers = array ('From' => $from,
      'To' => $to,
      'Subject' => $subject);
    $smtp = Mail::factory('smtp',
      array ('host' => $host,
        'port' => $port,
        'auth' => true,
        'username' => $username,
        'password' => $password));

    $mail = $smtp->send($to, $headers, $body);

    if (PEAR::isError($mail)) {
      echo("<p>" . $mail->getMessage() . "</p>");
     } else {
      echo("<p>Message successfully sent!</p>");
     }

?>