欢迎光临景诺科技软件开发淘宝店

进店请收藏,谢谢

使用亿美邮件平台发送单封验证邮件实现

亿美邮件平台有php api,不过他们是这样的格式:

只支持文件上传后发送,支持批量发送,只支持GBK格式,不支持utf8格式。。

各种坑。我需要用的是单个邮件发送,本来传递一个email给他们就可以发送邮件。但是他们api有上面的限制,所以我只能另想办法了:

public function index(){
	$c = new Client('账号','密码','http://sdk.b2m.cn/UpLoadService.svc');
	
	/**
	 * 获取验证码,只需要调用一次,将 $code 保存起来,过期后再执行获取
	 */	 
	$code = $c->GetIdentifyCode(); 
	$c->setCode($code);
	$retf = $c->CreateTriggerCampaign(
		array(
			'SendType'=>1,
			'MailName'=>'蒸汽之城验证邮件',
			'Mailcontent'=>'testxxcon2fsdf22222222方了l',
			'Fromaddress'=>'344129@s.emay.100mail.net',
			'SendTime'=>date('c')
		)
	);
	$email = "shanmao@mechanist.co";
	$datetime = time();
	$text = $this->createtext($email,$datetime);
	//dump($text);
	$ret = $c->SendTriggerMail(
		$retf,
		array(
			'CreateTime'=>date('c'),
			'Data'=>file_get_contents($text),
			//'Data'=>"",
			'FileName'=>$datetime.'.txt',
			'FileType'=>'.txt'
		)
	);
	//print_r( $c->getDebugInfo());
	/*if ($ret==null){
		echo $c->get_last_error();
	}else{
		dump($ret);
	}*/
	if($ret['SuccessCount']==1){
		echo 'success';
		}

}

	
function createtext($email,$datetime){
$strr = "姓名,手机号码,生日,电子邮件,备注,公司名称,个人主页,公司电子邮件地址,公司网页地址,自定义文本1,自定义文本2,自定义文本3,自定义文本4,自定义文本5,自定义文本6
aaaaa,13322232324,1949-10-1,".$email.",wh,亿美,wang@sohu.com,mail.emay.cn,www.emay.cn,zdy1,zdy2,zdy3,zdy4,zdy5,zdy6";
$file=getcwd()."/attached/email/".$datetime.".txt";
if(!file_exists($file)) 
{ 
$handle=fopen($file,"w");
fwrite($handle,$strr);
fclose($handle);
$CodeSwitch = new CodeSwitch();
$CodeSwitch->DetectAndSwitch($file,"gb2312");
return $file;
} 

}

如上代码。我首先新建一个txt文件,按照亿美给我的格式生成txt后上传到亿美发送。
问题随之而来。我生成的都是UTF8编码的文件。亿美不支持!
再次坑爹。
网上找了编码转换代码。刚好thinkphp有支持。用CodeSwitch 扩展类即可实现~
用以上代码就可以实现邮件单发了。
还有一个操作就是邮件发送完成后删除你刚建的txt文件。

更多

本文固定链接: http://shanmao.me/webback/thinkphp/shi-yong-yi-mei-jian-ping-tai-fa-song-dan-feng-yan-zheng-jian-shi-xian | 山猫的博客

该日志由 admin 于2013年07月01日发表在 php, thinkphp 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: 使用亿美邮件平台发送单封验证邮件实现 | 山猫的博客
关键字: