My ISP
帐户要求我发送出站SMTP
邮件的用户名和密码。
执行时如何PHP
使用它php.mail()?
该php.ini
文件仅包含服务器的条目(SMTP= )
和From: (sendmail_from= )
.
PHPmail()
命令不支持身份验证。您的选择:
我在 php.ini 文件上应用了以下详细信息。它工作正常。
SMTP = smtp.example.com
smtp_port = 25
username = info@example.com
password = yourmailpassord
sendmail_from = info@example.com
这些详细信息与 Outlook 设置相同。
使用Fake sendmail for Windows发送邮件。
sendmail
夹C:\wamp\
。sendmail
:sendmail.exe
、libeay32.dll
和.ssleay32.dll
sendmail.ini
C:\wamp\sendmail\sendmail.ini
:smtp_server=smtp.gmail.com smtp_port=465 auth_username=user@gmail.com auth_password=your_password
以上将适用于 Gmail 帐户。然后配置php.ini:
sendmail_path = "C:\wamp\sendmail\sendmail.exe -t"
现在,重新启动 Apache,这基本上就是您需要做的所有事情。
PHP确实对邮件命令进行了身份验证!
以下在 WAMPSERVER 上为我工作(windows,php 5.2.17)
php.ini
[mail function]
; For Win32 only.
SMTP = mail.yourserver.com
smtp_port = 25
auth_username = smtp-username
auth_password = smtp-password
sendmail_from = you@yourserver.com
/etc/postfix/main.cf
阅读:#Relay config
relayhost = smtp.server.net
smtp_use_tls=yes
smtp_sasl_auth_enable=yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_sasl_security_options = noanonymous
/etc/postfix/sasl_passwd
,输入:smtp.server.net username:password
类型 #/usr/sbin/postmap sasl_passwd
然后运行:service postfix reload
现在 PHP 将像往常一样使用该sendmail -t -i
命令运行邮件,Postfix 将拦截它并将其中继到您提供的 SMTP 服务器。
我更喜欢PHPMailer工具,因为它不需要 PEAR。但无论哪种方式,您都有一个误解:您不想要 SMTP 用户和密码的 PHP 服务器范围的设置。这应该是每个应用程序(或每个页面)的设置。如果你想在不同的 PHP 页面中使用相同的帐户,请将其添加到某种 settings.php 文件中。
经过一整天的努力,我终于找到了解决方案。这是我使用 WAMP 从 Windows XP 发送的方法。
<?php $message = "test message body"; $result = mail('recipient@some-domain.com', 'message subject', $message); echo "result: $result"; ?>
参考:
这些答案已经过时和贬值。最佳实践..
composer require phpmailer/phpmailer
sendmail.php 文件中的下一个只需要以下内容
# use namespace
use PHPMailer\PHPMailer\PHPMailer;
# require php mailer
require_once "../vendor/autoload.php";
//PHPMailer Object
$mail = new PHPMailer;
//From email address and name
$mail->From = "from@yourdomain.com";
$mail->FromName = "Full Name";
//To address and name
$mail->addAddress("recepient1@example.com", "Recepient Name");
$mail->addAddress("recepient1@example.com"); //Recipient name is optional
//Address to which recipient will reply
$mail->addReplyTo("reply@yourdomain.com", "Reply");
//CC and BCC
$mail->addCC("cc@example.com");
$mail->addBCC("bcc@example.com");
//Send HTML or Plain Text email
$mail->isHTML(true);
$mail->Subject = "Subject Text";
$mail->Body = "<i>Mail body in HTML</i>";
$mail->AltBody = "This is the plain text version of the email content";
if(!$mail->send())
{
echo "Mailer Error: " . $mail->ErrorInfo;
}
else
{
echo "Message has been sent successfully";
}
这可以配置你喜欢的任何方式..
使用 Mail PEAR 包中的 Mail::factory。例子。
"SMTP = 本地主机",
"smtp_port = 25",
" ;发送邮件路径 = "。