當我改變提供商時,我總是必須讓sendmail工作,這是一個真正的拖延。PHP郵件()函數替換?
在我的PHP代碼中是否可以使用任何免費提供程序來發送相同的變量,如用於註冊驗證的密鑰和內容?
我試着在谷歌上看,但我只發現有形式生成器的東西,這不是我所需要的。
當我改變提供商時,我總是必須讓sendmail工作,這是一個真正的拖延。PHP郵件()函數替換?
在我的PHP代碼中是否可以使用任何免費提供程序來發送相同的變量,如用於註冊驗證的密鑰和內容?
我試着在谷歌上看,但我只發現有形式生成器的東西,這不是我所需要的。
現在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('[email protected]' => 'John Doe'))
->setTo(array('[email protected]', '[email protected]' => 'A name'))
->setBody('Here is the message itself')
;
// Send the message
$result = $mailer->send($message);
我使用PHPMailer獲得了巨大成功。
你需要的是一個外向身份驗證的SMTP服務器,以便您不使用的主機之一,不必每次更改的細節。
看看AuthSMTP(有很多其他的網站提供這個),然後使用諸如PHPMailer或Swift Mailer之類的東西發送帶有認證的電子郵件。
問題是,許多ISPs將端口25(默認smtp)上的連接阻塞到除自己以外的服務器。與垃圾郵件阻止等有關
所以你想要代碼發送電子郵件或電子郵件提供商?標題與該問題不符。 – 2012-01-10 11:39:58