我有一个 sendEmail 函数作为我上网的一个更大的 php 脚本的一部分,我需要修改它以使用我的新 Mailgun 帐户。我对 PHP 还很陌生,对邮件服务器等还是比较陌生,所以这在上周一直是一个挑战。Mailgun 文档提供了一个使用 PHP 通过 HTTP POST 发送的示例(单击顶部的 PHP 按钮):
function send_simple_message() {
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, 'api:my-api-key-here');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_URL, 'https://api.mailgun.net/v2');
curl_setopt($ch, CURLOPT_POSTFIELDS, array('from' => 'Excited User <me@samples.mailgun.org>',
'to' => 'obukhov.sergey.nickolayevich@yandex.ru',
'subject' => 'Hello',
'text' => 'Testing some Mailgun awesomness!'));
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
我现有的 sendEmail 函数如下所示:
public function sendEmail($to, $subj, $msg, $shortcodes = '', $bcc = false) {
if ( !empty($shortcodes) && is_array($shortcodes) ) :
foreach ($shortcodes as $code => $value)
$msg = str_replace('{{'.$code.'}}', $value, $msg);
endif;
/* Multiple recepients? */
if ( is_array( $to ) )
$to = implode(', ', $to);
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: ' . address . "\r\n";
/* BCC address. */
if ( $bcc ) {
$headers .= 'Bcc: ' . $to . "\r\n";
$to = null;
}
$headers .= 'Reply-To: ' . address . "\r\n";
$headers .= 'Return-Path: ' . address . "\r\n";
/*
* If running postfix, need a fifth parameter since Return-Path doesn't always work.
*/
// $optionalParams = '-r' . address;
$optionalParams = '';
return mail($to, $subj, nl2br(html_entity_decode($msg)), $headers, $optionalParams);
}
我知道我不想在我的函数中指定主题、文本等,因为它是从其他现有区域绘制的,所以我尝试在函数中的某一点添加类似的内容(对不起,我不知道如何这一切看起来都放在一起,因为它太乱了,以至于我抓挠它重新开始:
curl_setopt($ch, CURLOPT_POSTFIELDS, array('from' => 'Webmaster <webmaster@mydomain.com>',
'to' => $to,
'subject' => $subj,
'text' => $msg));
我还在$ch = curl_init();
sendEmail 函数中添加了所有curl_setopt
行。除此之外,我迷路了,你可能猜到了,什么也没发生。
有人可以告诉我如何将两者结合起来,为什么或指出我在与这种事情非常相似的地方吗?
提前感谢您的帮助!