php.ini&SMTP = – 如何通过用户名和密码

My ISP帐户要求我发送出站SMTP邮件的用户名和密码。

执行php.mail()?时如何让PHP使用它php.mail()? php.ini文件只包含服务器(SMTP= )From: (sendmail_from= )条目。

PHP mail()命令不支持身份validation。 您的select:

  1. PHPMailer – 教程
  2. PEAR – 教程
  3. 自定义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发送邮件。

  1. C:\wamp\创build一个名为sendmail的文件夹。
  2. sendmail文件夹中提取这4个文件: sendmail.exelibeay32.dllssleay32.dllsendmail.ini
  3. 然后configurationC:\wamp\sendmail\sendmail.ini
 smtp_server=smtp.gmail.com smtp_port=465 auth_username=user@gmail.com auth_password=your_password 
  1. 以上将针对Gmail帐户。 然后configurationphp.ini:

    sendmail_path =“C:\ wamp \ sendmail \ sendmail.exe -t”

  2. 现在,重新启动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的方式。

  1. 使用Google的SMTP服务器。 您可能需要一个帐户。
  2. 下载并安装假Sendmail 。 我刚刚下载它,解压缩并将其放在WAMP文件夹中。
  3. 创build一个testingPHP文件。 见下文。
 <?php $message = "test message body"; $result = mail('recipient@some-domain.com', 'message subject', $message); echo "result: $result"; ?> 
  1. 更新你的php.ini文件和你的sendmail.ini文件(sendmail.ini在sendmail文件夹中)。
  2. 检查刚刚创build的sendmail文件夹中的error.log文件,如果它不起作用。

参考:

  1. 安装Postfix(与Sendmail兼容)。
  2. 编辑/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 
  1. 创build/etc/postfix/sasl_passwd ,input:
 smtp.server.net username:password 
  1. input# /usr/sbin/postmap sasl_passwd

  2. 然后运行: 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

  1. 安装最新的hMailServer 。 在最后一步“运行hMailServerpipe理员”。
  2. 连接到“localhost”。
  3. “添加域…”
  4. 设置“127.0.0.1”。 作为“域名”,点击“保存”。
  5. “设置”>“协议”>“SMTP”>“传送电子邮件”
  6. 将“localhost”设置为“本地主机名”, 在“SMTP关联者”部分提供您的数据 ,点击“保存”。
  7. “设置”>“高级”>“IP范围”>“我的电脑”
  8. 在“要求SMTPvalidation”组中禁用“外部到外部电子邮件地址”checkbox。
  9. 如果你修改了php.ini,重写这三个值:

“SMTP = localhost”,

“smtp_port = 25”,

; sendmail_path =”。

信用: 如何configurationWAMP(本地主机)使用Gmail发送电子邮件?