修改Javascript/PHP sendEmail函数以使用Mailgun HTTP POST
我有一个sendEmail函数,作为我在线获得的更大php脚本的一部分,我需要修改它以使用我的新Mailgun帐户。我对PHP相当陌生,甚至对邮件服务器之类的东西也比较新,所以这在上周是一个挑战。Mailgun文档提供了一个示例(单击顶部的PHP按钮): 我知道我不想在我的函数中指定to、subject、text等,因为它是从其他现有区域绘制的,所以我尝试在函数的某个点添加类似的内容(抱歉,我不知道它是如何组合在一起的,因为它太乱了,以至于我重新开始:修改Javascript/PHP sendEmail函数以使用Mailgun HTTP POST,php,javascript,curl,postfix-mta,mailgun,Php,Javascript,Curl,Postfix Mta,Mailgun,我有一个sendEmail函数,作为我在线获得的更大php脚本的一部分,我需要修改它以使用我的新Mailgun帐户。我对PHP相当陌生,甚至对邮件服务器之类的东西也比较新,所以这在上周是一个挑战。Mailgun文档提供了一个示例(单击顶部的PHP按钮): 我知道我不想在我的函数中指定to、subject、text等,因为它是从其他现有区域绘制的,所以我尝试在函数的某个点添加类似的内容(抱歉,我不知道它是如何组合在一起的,因为它太乱了,以至于我重新开始: curl_setopt($ch, CURL
curl_setopt($ch, CURLOPT_POSTFIELDS, array('from' => 'Webmaster <webmaster@mydomain.com>',
'to' => $to,
'subject' => $subj,
'text' => $msg));
curl\u setopt($ch,CURLOPT\u POSTFIELDS,array('from'=>'Webmaster',),
'至'=>$至,
“主题”=>$subc,
'text'=>$msg));
我还在sendEmail函数中添加了$ch=curl_init();
,以及所有curl_setopt
行。除此之外,我丢失了,正如您可能猜到的,什么也没发生
有人能告诉我如何将两者结合起来,为什么,或者给我指出一个与这类事情非常相似的地方吗
提前感谢您的帮助!根据我对您的问题的理解,您已经将底部代码作为您正在使用的脚本的一部分,但是实际的邮寄需要按照顶部给出的示例邮枪代码进行 我已将这两个函数混合在一起。它未经测试。。可能有错误 该函数具有相同的名称,调用方式与以前完全相同,接受相同的参数。您将看到,我已删除了代码的底部部分(实际上发送了电子邮件),并将其替换为示例代码。其中,我已将其提供的占位符文本替换为函数在接收时的值顶部:
$to
、$subj
和$msg
。我还删除了所有$headers
行,因为它们专门指的是mail()
函数,我们不再使用该函数。[编辑:现在也应该使用bcc选项。]
您仍然需要更改一些内容:此处的my api密钥
和兴奋用户
。这些信息应该可以从您的Mailgun帐户获得
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);
/* BCC address. */
$bccrecip = '';
if ( $bcc ) {
$bccrecip = $to;
$to = '';
}
$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' => $to,
'bcc' => $bccrecip,
'subject' => $subj,
'text' => $msg));
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
公共函数sendmail($to、$subj、$msg、$shortcodes='',$bcc=false){
如果(!empty($shortcode)&&is_数组($shortcode)):
foreach($code=>$value的短代码)
$msg=str_replace('{{.$code'}}}',$value,$msg);
endif;
/*多个最近者*/
if(is_数组($to))
$to=内爆(',',$to);
/*密件抄送地址*/
$bccrecip='';
若有(密件抄送){
$bccrecip=$to;
$to='';
}
$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'=>'兴奋用户'),
'至'=>$至,
“密件抄送”=>$bccrecip,
“主题”=>$subc,
'text'=>$msg));
$result=curl\u exec($ch);
卷曲关闭($ch);
返回$result;
}
什么东西完全不起作用?如果打开错误报告,它会输出任何错误吗?谢谢@Andy Allcorn!这真的帮助我看到了前284739次出错的地方,并且我能够让它起作用。
curl_setopt($ch, CURLOPT_POSTFIELDS, array('from' => 'Webmaster <webmaster@mydomain.com>',
'to' => $to,
'subject' => $subj,
'text' => $msg));
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);
/* BCC address. */
$bccrecip = '';
if ( $bcc ) {
$bccrecip = $to;
$to = '';
}
$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' => $to,
'bcc' => $bccrecip,
'subject' => $subj,
'text' => $msg));
$result = curl_exec($ch);
curl_close($ch);
return $result;
}