PHP mail()函数替换?

时间:2012-01-10 11:37:13

标签: php email sendmail

当我更改提供者时,我总是要让sendmail工作,这是一个真正的拖累。

我是否可以在我的PHP代码中使用任何免费提供程序来发送相同的变量,例如用于注册验证和内容的密钥代码?

我试着在谷歌上寻找,但我只找到了形成发电机的东西,这不是我需要的东西。

4 个答案:

答案 0 :(得分:6)

我使用PHPMailer取得了巨大成功。

答案 1 :(得分:2)

现在Swift Mailer是PHP最好的邮件解决方案之一。它高度模块化,可以轻松配置以满足您的需求。您可以定义multiple transports(例如在配置文件中)并使用更改提供程序时所需的那个。

以下是docs

的示例
require_once 'lib/swift_required.php';

// Create the Transport
$transport = Swift_SmtpTransport::newInstance('smtp.example.org', 25)
  ->setUsername('your username')
  ->setPassword('your password')
  ;

/*
You could alternatively use a different transport such as Sendmail or Mail:

// Sendmail
$transport = Swift_SendmailTransport::newInstance('/usr/sbin/sendmail -bs');

// Mail
$transport = Swift_MailTransport::newInstance();
*/

// Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);

// Create a message
$message = Swift_Message::newInstance('Wonderful Subject')
  ->setFrom(array('john@doe.com' => 'John Doe'))
  ->setTo(array('receiver@domain.org', 'other@domain.org' => 'A name'))
  ->setBody('Here is the message itself')
  ;

// Send the message
$result = $mailer->send($message);

答案 2 :(得分:1)

您需要的是传出的经过身份验证的SMTP服务器,因此您不需要使用主机,也不必每次都更改详细信息。

看看AuthSMTP(还有很多其他网站提供此功能),然后使用PHPMailer或Swift Mailer之类的东西发送带有身份验证的电子邮件。

答案 3 :(得分:1)

问题是很多ISP阻止端口25(默认smtp)上的连接到自己以外的服务器。与垃圾邮件阻止等有关。