当我更改提供者时,我总是要让sendmail工作,这是一个真正的拖累。
我是否可以在我的PHP代码中使用任何免费提供程序来发送相同的变量,例如用于注册验证和内容的密钥代码?
我试着在谷歌上寻找,但我只找到了形成发电机的东西,这不是我需要的东西。
答案 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)上的连接到自己以外的服务器。与垃圾邮件阻止等有关。