php.ini&SMTP = – 如何通过用户名和密码
My ISP
帐户要求我发送出站SMTP
邮件的用户名和密码。
执行php.mail()?
时如何让PHP
使用它php.mail()?
php.ini
文件只包含服务器(SMTP= )
和From: (sendmail_from= )
条目。
PHP mail()
命令不支持身份validation。 您的select:
- PHPMailer – 教程
- PEAR – 教程
- 自定义function – 请参阅注释部分中的各种解决scheme: http : //php.net/manual/en/ref.mail.php
我在php.ini文件中应用以下细节。 它的工作很好。
SMTP = smtp.example.com smtp_port = 25 username = info@example.com password = yourmailpassord sendmail_from = info@example.com
这些细节与Outlook设置相同。
使用假发送邮件的Windows发送邮件。
- 在
C:\wamp\
创build一个名为sendmail
的文件夹。 - 在
sendmail
文件夹中提取这4个文件:sendmail.exe
,libeay32.dll
,ssleay32.dll
和sendmail.ini
。 - 然后configuration
C:\wamp\sendmail\sendmail.ini
:
smtp_server=smtp.gmail.com smtp_port=465 auth_username=user@gmail.com auth_password=your_password
-
以上将针对Gmail帐户。 然后configurationphp.ini:
sendmail_path =“C:\ wamp \ sendmail \ sendmail.exe -t”
-
现在,重新启动Apache,这基本上是你所需要做的。
PHP对邮件命令有authentication!
以下是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
我更喜欢PHPMailer工具,因为它不需要PEAR。 但是无论如何,你有一个误解:你不需要一个PHP服务器范围内的SMTP用户和密码设置。 这应该是每个应用程序(或每页)的设置。 如果你想跨不同的PHP页面使用相同的帐户,将其添加到某种settings.php文件。
工作了一整天后,我终于find了解决办法。 这是我从Windows XP发送WAMP的方式。
- 使用Google的SMTP服务器。 您可能需要一个帐户。
- 下载并安装假Sendmail 。 我刚刚下载它,解压缩并将其放在WAMP文件夹中。
- 创build一个testingPHP文件。 见下文。
<?php $message = "test message body"; $result = mail('recipient@some-domain.com', 'message subject', $message); echo "result: $result"; ?>
- 更新你的php.ini文件和你的sendmail.ini文件(sendmail.ini在sendmail文件夹中)。
- 检查刚刚创build的sendmail文件夹中的error.log文件,如果它不起作用。
参考:
- 安装Postfix(与Sendmail兼容)。
- 编辑
/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
- 创build
/etc/postfix/sasl_passwd
,input:
smtp.server.net username:password
-
input#
/usr/sbin/postmap sasl_passwd
-
然后运行:
service postfix reload
现在PHP将像往常一样使用sendmail -t -i
命令运行邮件,Postfix将拦截它并将其中继到您提供的SMTP服务器。
在Mail PEAR包中使用Mail :: factory。 例。
考虑到这个问题中的一个答案,在PHP 4中,PEAR Mail包通常已经安装好了,这个非常简单的教程向您展示了需要添加到您的PHP文件中的几行代码http://email.about.com/ OD / emailprogrammingtips / QT / PHP_Email_SMTP_Authentication.htm
- 安装最新的hMailServer 。 在最后一步“运行hMailServerpipe理员”。
- 连接到“localhost”。
- “添加域…”
- 设置“127.0.0.1”。 作为“域名”,点击“保存”。
- “设置”>“协议”>“SMTP”>“传送电子邮件”
- 将“localhost”设置为“本地主机名”, 在“SMTP关联者”部分提供您的数据 ,点击“保存”。
- “设置”>“高级”>“IP范围”>“我的电脑”
- 在“要求SMTPvalidation”组中禁用“外部到外部电子邮件地址”checkbox。
- 如果你修改了php.ini,重写这三个值:
“SMTP = localhost”,
“smtp_port = 25”,
“ ; sendmail_path =”。
信用: 如何configurationWAMP(本地主机)使用Gmail发送电子邮件?