我尝试通过SMTP服务器发送电子邮件。是否可以使用mail()函数发送消息?还是我必须使用PHPMailer或Pear?
$to = "somebody@example.com";
$subject = "My subject";
$txt = "Hello world!";
$headers = "From: webmaster@example.com" . "\r\n" .
"CC: somebodyelse@example.com";
mail($to,$subject,$txt,$headers);
是否可能像这样:
$headers .= "Host: myhost.example.com\r\n";
$headers .= "User: myusername\r\n";
$headers .= "Password: mypassword\r\n";
?我正在寻找可能的简单版本。
答案 0 :(得分:0)
在Windows上,您可以在php.ini中指定用于SMTP的服务器,但不能在* nix上指定希望找到sendmail或符合sendmail要求的服务器
您可以在{nix系统上设置postfix
,Exim
或其他一些smtpd,以用作经过身份验证的中继来通过其他SMTP服务器发送邮件。
但是随后,这种情况正在迅速走向unix.stackexchange.com
或superuser
或serverfault
答案 1 :(得分:0)
您是否要通过需要身份验证的SMTP服务器发送电子邮件?如果是这样,则不能使用本机mail()函数:
php.ini & SMTP= - how do you pass username & password
答案 2 :(得分:0)
例如
<?php
$to = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = array(
'From' => 'webmaster@example.com',
'Reply-To' => 'webmaster@example.com',
'X-Mailer' => 'PHP/' . phpversion()
);
mail($to, $subject, $message, $headers);
?>
为提高可传递性,您可能希望通过将-f参数传递给sendmail来设置“发件人”地址,如下所示:
mail($to, $subject, $message, $headers, '-f webmaster@example.com');
您还应该检查您的域上是否设置了SPF记录,以允许Web服务器IP地址代表该域发送邮件。