我使用了PHPmailer,它非常好用。
$mail=new PHPMailer();
$mail->IsSMTP();
$mail->Port = 587;
$mail->SMTPAuth = true;
//sendgrid
$mail->Username="apikey";
$mail->Password = $api; //api key from sendgrid
$mail->Host="smtp.sendgrid.net";
$mail->SMTPSecure = 'tls';
$mail->From = $from;
$mail->FromName = 'From name';
$mail->AddAddress($to); // Add a recipient
$mail->MsgHTML($sbody);
$mail->isHTML(true);
$mail->Body = $sbody;
$mail->Subject = $subject;
if(!$mail->Send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
exit;
}
$mail->ClearAddresses();
$mail->ClearAttachments();
虽然它不完全回答了我的原始问题,但是它回答了这个问题:"用于发送电子邮件的简单PHP类"
我花了一整天时间尝试让SendGrid PHP示例在我的服务器上工作。也许我是老派的,但是我没有为现有代码使用Composer
,而且SendGrid示例没有运行所需的Composer。此外,我不想调整我的现有PHP代码库以适应他们的类,也不想去调试他们的类来提取有效部分。(被Mandrill抛弃已经让我头痛不已,我不想再为此增加麻烦。)
然后我在SendGrid社区论坛上发布了一个问题......却什么都没得到。
我向他们的技术支持提交了一个工单......但没有收到任何回复。(到今天为止。)
所以我的解决方案是继续寻找。那时我发现这篇评论关于交易邮件服务,并首先尝试了Amazon SES(但设置非常麻烦,所以我没有选择它。这里有一个不错的YouTube视频,展示了安装过程有多么复杂)。然后我尝试了SendInBlue,并且非常喜欢它的易用性。他们的PHP类用于发送邮件是仅一个.php
文件,大小为22KB。没有composer
,也没有其他依赖项。它可以在不给我任何麻烦的情况下工作。传递能力也非常好。我能够在15分钟内设置一个开箱即用的帐户(经过所有必要的验证等)。对于新帐户可以发送多少封电子邮件有一些限制,但是在您联系他们的技术支持(或者自己建立)之后,他们将取消其中一些限制。因此,我的测试电子邮件能够毫无问题地到达Hotmail,Outlook,GMail服务器。它直接进入收件箱。我甚至不需要设置SPF和DKIM记录。默认情况下,您发送的电子邮件使用SendinBlue签名。稍后,在我联系他们的技术支持并收到及时回复和说明后,我设置了自己的SPF和DKIM记录。
PHPMailer 也可以与 Sendgrid 网络服务一起正常使用 - @bob_1982 的示例是正确的。但是,如果您正在使用 PHP 5.6+ 版本,则可能会有问题。自此版本起,PHP 流设置 SSL peer verify
从默认值 FALSE
更改为默认值 TRUE
,这在 Sendgrid 特别是出现了错误 Failed verifying SSL certificate
。以下是应遵循的 PHPMailer SMTP 流设置以解决此问题:
$phpMailer->SMTPOptions = [
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false,
],
];
然而,禁用对等验证绝对不是一个好建议,因为这样做会影响安全性。服务提供商应该修复问题,而不是采用这种解决方法。请参阅与SwiftMailer相关的问题 - https://github.com/swiftmailer/swiftmailer/issues/544。
您需要拥有SendGrid PHP帮助库:
https://github.com/sendgrid/sendgrid-php
然后您应该按照GitHub页面上的说明进行操作。
编辑
抱歉,我错过了您提到的内容。您不需要上传1.7 MB。它只是几个类。