【发布时间】:2014-05-22 00:19:15
【问题描述】:
我使用的是 Windows Server 2008 R2。我已经安装了 XAMPP,它安装了 MySQL、PHP 和 Apache。我还安装了 WordPress。我有几个问题似乎无法通过 Google 搜索得到直接答案。我已经搜索这些答案超过 8 小时了。
问题
有没有办法安装 SMTP 服务器以与 Apache 一起工作?如果有,怎么做?
我可以配置 php 邮件以在不使用 SMTP 的情况下工作吗?如果有,怎么做?
问题:
我已经在 WordPress 和 sendmail.ini 中配置了邮件。我可以发送一封测试电子邮件,它说它已发送,但我从未收到电子邮件。我真的需要帮助来解决这个问题。我完全不知所措。
在下方发送邮件输出
Test Message Sent
The result was:
bool(true)
The full debugging output is shown below:
object(PHPMailer)#232 (65) {
["Priority"]=>
int(3)
["CharSet"]=>
string(5) "UTF-8"
["ContentType"]=>
string(10) "text/plain"
["Encoding"]=>
string(4) "8bit"
["ErrorInfo"]=>
string(0) ""
["From"]=>
string(23) "myemail@email.com"
["FromName"]=>
string(12) "Joe Randolph"
["Sender"]=>
string(23) "myemail@email.com"
["ReturnPath"]=>
string(0) ""
["Subject"]=>
string(50) "WP Mail SMTP: Test mail to myemail@email.com"
["Body"]=>
string(68) "This is a test email generated by the WP Mail SMTP WordPress plugin."
["AltBody"]=>
string(0) ""
["MIMEBody":protected]=>
string(69) "This is a test email generated by the WP Mail SMTP WordPress plugin.
"
["MIMEHeader":protected]=>
string(364) "Date: Wed, 9 Apr 2014 01:55:32 +0000
Return-Path: myemail@email.com
From: Joe Randolph
Message-ID: <2c046a69376cf33b2ede557c0e3f3e8a@127.0.0.1>
X-Priority: 3
X-Mailer: PHPMailer 5.2.4 (http://code.google.com/a/apache-extras.org/p/phpmailer/)
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset=UTF-8
"
["mailHeader":protected]=>
string(88) "To: myemail@email.com
Subject: WP Mail SMTP: Test mail to myemail@email.com
"
["WordWrap"]=>
int(0)
["Mailer"]=>
string(4) "mail"
["Sendmail"]=>
string(18) "/usr/sbin/sendmail"
["UseSendmailOptions"]=>
bool(true)
["PluginDir"]=>
string(0) ""
["ConfirmReadingTo"]=>
string(0) ""
["Hostname"]=>
string(0) ""
["MessageID"]=>
string(0) ""
["MessageDate"]=>
string(0) ""
["Host"]=>
string(9) "localhost"
["Port"]=>
int(25)
["Helo"]=>
string(0) ""
["SMTPSecure"]=>
string(3) "ssl"
["SMTPAuth"]=>
bool(false)
["Username"]=>
string(0) ""
["Password"]=>
string(0) ""
["AuthType"]=>
string(0) ""
["Realm"]=>
string(0) ""
["Workstation"]=>
string(0) ""
["Timeout"]=>
int(10)
["SMTPDebug"]=>
bool(true)
["Debugoutput"]=>
string(4) "echo"
["SMTPKeepAlive"]=>
bool(false)
["SingleTo"]=>
bool(false)
["SingleToArray"]=>
array(0) {
}
["LE"]=>
string(1) "
"
["DKIM_selector"]=>
string(0) ""
["DKIM_identity"]=>
string(0) ""
["DKIM_passphrase"]=>
string(0) ""
["DKIM_domain"]=>
string(0) ""
["DKIM_private"]=>
string(0) ""
["action_function"]=>
string(0) ""
["Version"]=>
string(5) "5.2.4"
["XMailer"]=>
string(0) ""
["smtp":protected]=>
NULL
["to":protected]=>
array(1) {
[0]=>
array(2) {
[0]=>
string(23) "myemail@email.com"
[1]=>
string(0) ""
}
}
["cc":protected]=>
array(0) {
}
["bcc":protected]=>
array(0) {
}
["ReplyTo":protected]=>
array(0) {
}
["all_recipients":protected]=>
array(1) {
["myemail@email.com"]=>
bool(true)
}
["attachment":protected]=>
array(0) {
}
["CustomHeader":protected]=>
array(0) {
}
["message_type":protected]=>
string(5) "plain"
["boundary":protected]=>
array(3) {
[1]=>
string(35) "b1_2c046a69376cf33b2ede557c0e3f3e8a"
[2]=>
string(35) "b2_2c046a69376cf33b2ede557c0e3f3e8a"
[3]=>
string(35) "b3_2c046a69376cf33b2ede557c0e3f3e8a"
}
["language":protected]=>
array(0) {
}
["error_count":protected]=>
int(0)
["sign_cert_file":protected]=>
string(0) ""
["sign_key_file":protected]=>
string(0) ""
["sign_key_pass":protected]=>
string(0) ""
["exceptions":protected]=>
bool(true)
}
下面是 sendmail.ini 的代码 - 我不确定它是否配置正确
; configuration for fake sendmail
; if this file doesn't exist, sendmail.exe will look for the settings in
; the registry, under HKLM\Software\Sendmail
[sendmail]
; you must change mail.mydomain.com to your smtp server,
; or to IIS's "pickup" directory. (generally C:\Inetpub\mailroot\Pickup)
; emails delivered via IIS's pickup directory cause sendmail to
; run quicker, but you won't get error messages back to the calling
; application.
smtp_server=mail.localhost.com
; smtp port (normally 25)
smtp_port=25
; SMTPS (SSL) support
; auto = use SSL for port 465, otherwise try to use TLS
; ssl = alway use SSL
; tls = always use TLS
; none = never try to use SSL
smtp_ssl=auto
; the default domain for this server will be read from the registry
; this will be appended to email addresses when one isn't provided
; if you want to override the value in the registry, uncomment and modify
;default_domain=mydomain.com
; log smtp errors to error.log (defaults to same directory as sendmail.exe)
; uncomment to enable logging
error_logfile=error.log
; create debug log as debug.log (defaults to same directory as sendmail.exe)
; uncomment to enable debugging
;debug_logfile=debug.log
; if your smtp server requires authentication, modify the following two lines
auth_username=myemail@email.com
auth_password=test1
; if your smtp server uses pop3 before smtp authentication, modify the
; following three lines. do not enable unless it is required.
pop3_server=
pop3_username=
pop3_password=
; force the sender to always be the following email address
; this will only affect the "MAIL FROM" command, it won't modify
; the "From: " header of the message content
force_sender=
; force the sender to always be the following email address
; this will only affect the "RCTP TO" command, it won't modify
; the "To: " header of the message content
force_recipient=
; sendmail will use your hostname and your default_domain in the ehlo/helo
; smtp greeting. you can manually set the ehlo/helo name if required
hostname=localhost
【问题讨论】:
-
SMTP 和 Apache 是独立的服务器,它们不能相互协作。 SMTP 服务器也不需要在本地,如果配置正确,您甚至可以在 Gmail 或 Yahoo 等免费电子邮件中使用 SMTP。我对 Windows php 知之甚少,不知道 mail() 使用什么。使用正确配置的 SMTP 服务器更可靠、更容易通过垃圾邮件过滤器。
-
感谢您的信息。我知道如果没有单独的 SMTP 服务器,仍然可以使用 SMTP。
标签: php wordpress apache email xampp