【问题标题】:Given two seperate servers; can PHP decide on the server to recieve e-mails?给定两个独立的服务器; PHP 可以决定在服务器上接收电子邮件吗?
【发布时间】:2014-11-10 00:49:34
【问题描述】:

我一直在思考,我对多个电子邮件地址和mail 功能有疑问。

是否可以让 PHP 向特定的smtp 服务器发送电子邮件;例如,如果我有两个地址。

配置

smtp.fakecompany1.co.nz

目标收件人

  • killrawr@fakecompany1.co.nz (smtp.fakecompany1.co.nz)
  • killrawr@fakecompany1.co.nz (smtp.fakecompany2.com)

目前,如果设置了预期的recipientsmtp (smtp.fakecompany1.co.nz),则从预期的smtp 中设置recipient (smtp .fakecompany1.co.nz) 将收到电子邮件;但我的问题是关于是否可以选择smtp(smtp.fakecompany1.co.nz) 并发送电子邮件,而无需进行身份验证变成不同的smtp (smtp.fakecompany2.com)


(来源:iforce.co.nz

TL;DR 我可以从smtp.fakecompany1.co.nzsmtp.fakecompany2.com 发送电子邮件(假设两台服务器上都存在电子邮件),而无需修改主服务器上的身份验证详细信息(由于 Gmail 的技术问题)。

【问题讨论】:

标签: php email smtp gmail


【解决方案1】:

您可以使用 PEAR::Mail 代替 mail() 进行 SMTP。看这个问题的例子:how to use php pear mail

这是我从链接的 Q 中复制的修改示例:

require_once "Mail.php";
$from = "<test@example.com>";
$to = "<testing@example.com>";
$subject = "Hi!";
$body = "Hello world";

$host = "smtp.fakecompany2.com";
$port = "465";
$username = "<testtest@example.com>";
$password = "testtest";

if (YOUR HEADER CHECK HERE) {
    $host = "smtp.fakecompany1.co.nz";
}

$headers = array ('From' => $from,
  'To' => $to,
  'Subject' => $subject);
$smtp = Mail::factory('smtp',
  array ('host' => $host,
    'port' => $port,
    'auth' => true,
    'username' => $username,
    'password' => $password));

$mail = $smtp->send($to, $headers, $body);

if (PEAR::isError($mail)) {
  echo("<p>" . $mail->getMessage() . "</p>");
} else {
  echo("<p>Message successfully sent!</p>");
}

【讨论】:

  • PEAR 是一个需要安装的东西,顺便说一句。
  • 我试图重新提出我的问题;为了更好地解释,我在追求什么。但是很好的答案!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-21
  • 2012-06-06
  • 1970-01-01
  • 2016-10-06
  • 1970-01-01
相关资源
最近更新 更多