mail.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. <?php
  2. define('MAIL_SMTP','smtp.qq.com'); // 邮箱SMTP服务器
  3. define('MAIL_ADDRESS','hr.internal@oasgames.com'); // 邮箱地址
  4. define('MAIL_LOGINNAME','hr.internal@oasgames.com'); // 邮箱登录帐号
  5. define('MAIL_PASSWORD','oashr2013');
  6. define('MAIL_FROM_NAME','OASIS GAMES HR');
  7. //发送邮件
  8. function SendMail($address,$title,$message,$ReplyTo_Addr="noreply@oasgame.com",$ReplyTo_Name="OASIS Games", $service='amazon'){
  9. if($service=='amazon'){
  10. return OASMailer::SendMail_WithAmazon($address,$title,$message);
  11. }
  12. else{
  13. return OASMailer::SendMail_TS($address,$title,$message,$ReplyTo_Addr,$ReplyTo_Name);
  14. }
  15. }
  16. class OASMailer{
  17. public static $phpMailer;
  18. public static $sendErrResult;
  19. public static function SendMail_TS($address,$title,$message,$ReplyTo_Addr="noreply@oasgame.com",$ReplyTo_Name="OASIS Games"){
  20. if(empty($phpMailer)){
  21. require_once(dirname(__FILE__) . '/PHPMailer/class.phpmailer.php');
  22. self::$phpMailer = new PHPMailer();
  23. }
  24. $mail = self::$phpMailer;
  25. // Telling the class to use SendMail transport
  26. $mail->IsSendmail();
  27. // 开启HTML标签的支持
  28. $mail->IsHTML(true);
  29. // 设置邮件的字符编码,若不指定,则为'UTF-8'
  30. $mail->CharSet = 'UTF-8';
  31. $mail->AddReplyTo($ReplyTo_Addr,$ReplyTo_Name);
  32. $mail->SetFrom($ReplyTo_Addr, $ReplyTo_Name);
  33. $mail->AddAddress($address,"");
  34. $mail->Subject = $title;
  35. //$mail->AltBody = "To view the message, please use an HTML compatible email viewer!";
  36. $mail->MsgHTML($message);
  37. return $mail->Send();
  38. }
  39. public static function SendMail_WithAmazon($address,$subject,$message){
  40. require_once(dirname(__FILE__) . '/amazon/ses.php');
  41. $_MAIL_FROM_ADDR = 'noreply@oasgame.com';
  42. $_AMAZON_ACCESS_KEY = 'AKIAIMVZOFS3LDK3W2VQ';
  43. $_AMAZON_SECRET_KEY = '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';
  44. $ses = new SimpleEmailService($_AMAZON_ACCESS_KEY, $_AMAZON_SECRET_KEY);
  45. $ses_m = new SimpleEmailServiceMessage();
  46. $ses_m->setFrom($_MAIL_FROM_ADDR);
  47. $ses_m->addTo($address);
  48. $ses_m->setSubject($subject);
  49. $ses_m->setMessageFromString('',$message);
  50. $ses_m->setMessageCharset('utf-8');
  51. $result = $ses->sendEmail($ses_m);
  52. if(is_array($result) && !empty($result['MessageId'])){
  53. return true;
  54. }
  55. else{
  56. self::$sendErrResult = $result;
  57. return false;
  58. }
  59. }
  60. public static function SendMail_WithMailgun($address,$subject,$message,$mailFrom='noreply@oasgames.com'){
  61. $apiUrl = 'https://api.mailgun.net/v2/oasgame.com/messages';
  62. $auth = base64_encode('api:key-3sduhyatml4t7t5dp-1g6hhvhx72ll22');
  63. $reqHeader = array(
  64. 'Authorization:Basic '.$auth,
  65. "Content-Type: application/x-www-form-urlencoded"
  66. );
  67. $postData = array(
  68. 'from' => $mailFrom,
  69. 'to' => $address,
  70. 'subject' => $subject,
  71. 'html' => $message
  72. );
  73. return self::curlRequest($apiUrl,$postData,$reqHeader,10);
  74. }
  75. private static function curlRequest($url,$postData='',$headerFields,$timeout=3){
  76. $curl = curl_init();
  77. curl_setopt($curl, CURLOPT_URL, $url);
  78. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
  79. curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);
  80. curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
  81. curl_setopt($curl, CURLOPT_HTTPHEADER, $headerFields);
  82. curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);
  83. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  84. if(!empty($postData)){
  85. curl_setopt($curl, CURLOPT_POST, 1);
  86. curl_setopt($curl, CURLOPT_POSTFIELDS,http_build_query($postData));
  87. }
  88. $resultData = curl_exec($curl);
  89. $httpInfo = curl_getinfo($curl);
  90. curl_close($curl);
  91. return $resultData;
  92. }
  93. //发送邮件
  94. public static function SendMail_OAS_SMTP($address,$title,$message,$fromName=MAIL_FROM_NAME)
  95. {
  96. if(empty($phpMailer)){
  97. require_once(dirname(__FILE__) . '/PHPMailer/class.phpmailer.php');
  98. self::$phpMailer = new PHPMailer();
  99. }
  100. $mail = self::$phpMailer;
  101. // 设置PHPMailer使用SMTP服务器发送Email
  102. $mail->IsSMTP();
  103. // 开启HTML标签的支持
  104. $mail->IsHTML(true);
  105. // 设置邮件的字符编码,若不指定,则为'UTF-8'
  106. $mail->CharSet = 'UTF-8';
  107. // 设置为"需要验证"
  108. $mail->SMTPAuth = true;
  109. //
  110. $mail->Port = 25;
  111. // 设置SMTP服务器。
  112. $mail->Host = MAIL_SMTP;
  113. // 设置用户名和密码。
  114. $mail->Username = MAIL_LOGINNAME;
  115. //
  116. $mail->Password = MAIL_PASSWORD;
  117. // 设置邮件头的From字段。
  118. $mail->From = MAIL_ADDRESS;
  119. // 设置发件人名字
  120. $mail->FromName = $fromName;
  121. // 添加收件人地址,可以多次使用来添加多个收件人
  122. foreach(explode(";",$address) as $address_this){
  123. $mail->AddAddress($address_this);
  124. }
  125. // 设置邮件标题
  126. $mail->Subject = $title;
  127. // 设置邮件正文
  128. $mail->Body = $message;
  129. // 发送邮件。
  130. return $mail->Send();
  131. }
  132. }// class end