Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.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邮件的smtp配置_Php_Smtp_Email - Fatal编程技术网

php邮件的smtp配置

php邮件的smtp配置,php,smtp,email,Php,Smtp,Email,我使用php邮件功能从我的网站发送邮件。但现在它不工作,我联系了我们的托管团队,然后他们告诉我使用smtp,因为他们在服务器上做了一些更改。我不知道怎么做。当前代码(带有php邮件功能)如下所示,有人能帮我修改一下吗 <?php $mail_To="someone@gmail.com"; $headers = ""; $headers .= "From: livetv@muscle-tube.com\n"; $headers .= "Reply-To: livetv@muscle-tube

我使用php邮件功能从我的网站发送邮件。但现在它不工作,我联系了我们的托管团队,然后他们告诉我使用smtp,因为他们在服务器上做了一些更改。我不知道怎么做。当前代码(带有php邮件功能)如下所示,有人能帮我修改一下吗

<?php
$mail_To="someone@gmail.com";
$headers = "";
$headers .= "From: livetv@muscle-tube.com\n";
$headers .= "Reply-To: livetv@muscle-tube.com\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
$headers .= "X-Mailer: php";
$mail_Subject = " Live TV key";
$mail_Body = "<p>Muscle-tube</p>";
mail($mail_To, $mail_Subject, $mail_Body,$headers);
?>

PHP的
mail()
函数不支持SMTP。你将需要使用类似的东西

以下是SMTP邮件脚本示例:

<?php
require_once("Mail.php");

$from = "Your Name <email@blahblah.com>";
$to = "Their Name <otheremail@whatever.com>";
$subject = "Subject";
$body = "Lorem ipsum dolor sit amet, consectetur adipiscing elit...";

$host = "mailserver.blahblah.com";
$username = "smtp_username";
$password = "smtp_password";

$headers = array('From' => $from, 'To' => $to, 'Subject' => $subject);

$smtp = Mail::factory('smtp', array ('host' => $host,
                                     'auth' => true,
                                     'username' => $username,
                                     'password' => $password));

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

if ( PEAR::isError($mail) ) {
    echo("<p>Error sending mail:<br/>" . $mail->getMessage() . "</p>");
} else {
    echo("<p>Message sent.</p>");
}
?>

但现在它不工作,我联系了我们的托管团队,然后他们告诉我使用smtp

新闻快讯-它以前使用SMTP。他们没有向您提供解决问题所需的信息,或者您没有在此处准确地传递信息

他们可能已禁用Web服务器上的本地MTA,在这种情况下,您需要连接远程计算机上的SMTP端口。有很多工具箱可以帮你完成繁重的工作。我个人喜欢,因为它增加了其他功能

当然,如果他们拿走了以前在那里的设施,而你为服务付费,那么你的提供商应该会为你提供更好的支持(还有很多程序可以代替完整的MTA来完成这项工作)


请注意,PHP邮件设置来自您的
PHP.ini
文件。默认值大致如下所示:

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = me@example.com

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
;sendmail_path =

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =

; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
mail.add_x_header = On

; Log all mail() calls including the full path of the script, line #, to address and headers
;mail.log =
通过编辑
php.ini
文件,您应该能够在不更改php脚本的情况下解决问题。此外,如果直接连接到SMTP服务器,您还可以使用telnet工具和
HELO
MAIL FROM
RCPT TO
DATA
退出
命令测试连接。使用
sendmail
,您甚至不需要它,
sendmail
应该知道它在做什么(尽管在您的情况下,它可能不知道,
sendmail
设置可能需要一些帮助。)


更新:在大多数情况下,
telnet
不再安装,因为它被认为是危险的(即,它为您提供了一个明文连接,在您的本地网络上通常是正常的,但在远程计算机上则不是这样)。取而代之的是,我们有一个非常类似于测试SMTP之类的东西,但实际上不允许远程shell连接。这就是说,越来越多的SMTP也将使用加密,因此最好的测试工具仍然是
sendmail

,因为这里给出的一些答案与设置SMTP一般有关(而不仅仅是针对@shinod特定问题,它一直在工作并停止),我想如果我更新了答案会很有帮助,因为现在做这件事比以前简单多了:-)

在PHP4中,通常已经安装了PEAR邮件包,这个非常简单的教程向您展示了需要添加到PHP文件中的几行代码

大多数托管公司都会列出您需要的SMTP设置。我使用JustHost,它们在(传出邮件服务器下)列出它们的邮件php的
email()
函数将电子邮件交给底层的
邮件传输代理
,在linux系统上通常是
postfix

因此,linux上的首选方法是将postfix配置为使用relayhost,这是由一行

relayhost=smtp.example.com

/etc/postfix/main.cf


然而,在OP的场景中,我不知何故怀疑他的
托管团队
应该完成这项工作

smtp选项仅适用于Windows。对于*inux,它依赖于不支持smtp的
sendmail\u路径
。出于这个原因,我否决了它。如何使用mail.php文件/