警告-此页面上的某些功能需要的浏览器或操作系统比您当前使用的浏览器或操作系统更新。 请在其他浏览器打开该页面。
使用SMTP客户端发送电子邮件
API文档
发送邮件
SMTP命令
信息
示例代码
邮件已发送, SMTP日志
邮件错误, SMTP日志
- 此页允许您查看SMTP客户端与广泛使用的SMTP服务器之间通信的实时示例.
- 从列表中选择一个SMTP服务器,然后将调用下面显示的代码.
- 有时会有延迟.这可能是SMTP服务器的强制延迟,以减慢并阻止垃圾邮件发送者.延迟的呼叫将清楚地显示在日志结果中.
- 通常,SMTP仅用于发送外发电子邮件,但是自动脚本可以使用基本命令来验证服务器是否正常运行.
// Optional Debug callback to log SMTP calls and reply lines
$reply_lines = [];
$debug_callback = function($message) use (&$reply_lines) {
$reply_lines[] = '[' . date('H:i:s') . '] ' . trim($message);
};
// Create SMTP Object and call serveral commands (API methods)
$smtp = new SmtpClient($host, $port, $timeout, $debug_callback);
$smtp->help();
$smtp->noop();
$smtp->quit();
$smtp->close();
为什么要将FastSitePHP用于SMTP和Email
- 易于使用API
- 卓越的性能和极小的内存需求
- 所有的SMTP和电子邮件代码只存在于2个小文件中(每个文件是一个单独的类).所有的代码都经过了很好的注释,没有什么神奇的代码.为了安全起见,代码中发生的事情是清楚的.
- 类是围绕安全性和可靠性设计的,同时支持所需的电子邮件功能.
- Unicode支持,包括使用Unicode电子邮件地址.
- 易于加入文件附件.
- 易于调试SMTP通信(发送和应答命令).
其他PHP SMTP电子邮件客户端
FastSitePHP只支持SMTP.如果您需要使用[sendmail],建议使用以下广泛使用的PHP项目之一,而不是UTF8, DKIM,使用XOAUTH2进行身份验证之外的编码,或者不支持的电子邮件功能.
其他编程语言的SMTP客户端
- JavaScript (Node) https://nodemailer.com/about/
- Python https://docs.python.org/3/library/smtplib.html
- Ruby Mail https://rubygems.org/gems/mail/
- Ruby SMTP https://ruby-doc.org/stdlib/libdoc/net/smtp/rdoc/Net/SMTP.html
- C# / .Net https://docs.microsoft.com/en-us/dotnet/api/system.net.mail
- Go Lang https://golang.org/pkg/net/smtp/
// Create an Email Object. The Email Object can also
// be created without specifying any parameters.
$email = new \FastSitePHP\Net\Email($from, $to, $subject, $body);
// All properties can be read and set through getter/setter functions.
$email
->allowUnicodeEmails(true) // For support with Unicode Email Addresses
->from(['无回复@example.com', 'No Reply'])
->replyTo('test@example.com')
->to(['email1@example.com', 'email2@example.com'])
->cc('email3@example.com')
->bcc('email4@example.com')
->priority('High') // ['High', 'Normal', or 'Low']
->safeHeaderNames(true) // Defaults to [true] for custom fields
->header('X-Transaction-ID', '123abc')
->encodeFileNames(true)
->attachFile($file_path)
->isHtml(true) // Defaults to [true]
->subject($subject)
->body($body);
// Send email using Simple Mail Transfer Protocol (SMTP).
// Setting [$smtp = null] after use, automatically calls [$smtp->quit()]
// and [$smtp->close()], however it also happens automatically after the
// object is no longer used.
$smtp = new \FastSitePHP\Net\SmtpClient($host, $port);
if ($user) {
$smtp->auth($user, $password);
}
$smtp->send($email);
$smtp = null;
// Create a Client with a 2 second timeout and with debugging
// to show all data sent to the SMTP Server and all reply lines
$timeout = 2;
$callback = function($message) {
echo '[' . date('H:i:s') . '] ' . trim($message) . "\n";
};
$smtp = new \FastSitePHP\Net\SmtpClient($host, $port, $timeout, $callback);