php
  • gmail-api
  • url-encoding
  • 2017-01-10 4 views 1 likes 
    1

    У меня возникли проблемы с отправкой встроенных электронных писем HTML из PHP с API Gmail.Отправка электронной почты с PHP с использованием API Gmail

    Вот код:

    $raw_message .= "To:".$email['name']." <".$email['email'].">\r\n"; 
    $raw_message .= 'Subject: =?utf-8?B?' .base64_encode($email_array['subject']) . "?=\r\n"; 
    
    // Set the right MIME & Content type 
    $raw_message .= "MIME-Version: 1.0\r\n"; 
    $raw_message .= "Content-Type: text/html; charset=utf-8\r\n"; 
    $raw_message .= 'Content-Transfer-Encoding: quoted-printable' . "\r\n\r\n"; 
    
    $mime = rtrim(strtr(base64_encode($raw_message), '+/', '-_'), '='); 
    $message = new Google_Service_Gmail_Message(); 
    $message->setRaw($mime); 
    
    $template = $this->load->view('email/default_email_template', $email_template_array, true); 
    $raw_message .= $template; 
    
    $mime = rtrim(strtr(base64_encode($raw_message), '+/', '-_'), '='); 
    $message = new Google_Service_Gmail_Message(); 
    $message->setRaw($mime); 
    
    $response = $service->users_messages->send($user, $message); 
    

    электронной почты, что я получаю это просто текст.

    Здесь можно использовать определенную помощь.

    Заранее благодарен!

    EDIT: Вот мой шаблон

    <body style="height: 100% !important; margin: 0 !important; padding: 0 !important; width: 100% !important;margin: 0 !important; padding: 0 !important;"> 
    
    <!-- HEADER --> 
    <table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse !important;"> 
    <tr> 
    <td bgcolor="#fff" align="center"> 
    <!--[if (gte mso 9)|(IE)]> 
    <table align="center" border="0" cellspacing="0" cellpadding="0" width="500"> 
    <tr> 
         <td align="center" valign="top" width="500"> 
         <![endif]--> 
         <table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse !important;max-width: 500px;width: 100% !important; max-width: 100% !important;"> 
          <tr> 
           <td align="center" valign="top" style="padding: 15px 0;margin: 0 auto !important;" class="logo"> 
            <a href="https://www.example.com" target="_blank"> 
             <img alt="Logo" src="https://example.com/home/images/logo.png" width="90" height="90" style="border: 0; height: auto; line-height: 100%; outline: none; text-decoration: none; display: block; font-family: Helvetica, Arial, sans-serif; color: #ffffff; font-size: 16px;" border="0"> 
            </a> 
            <span style="font-size: 40px; color: #000000;">mad</span><span style="font-size: 40px; color: #e18a07;">gigs</span> 
           </td> 
          </tr> 
         </table> 
         <!--[if (gte mso 9)|(IE)]> 
         </td> 
         </tr> 
         </table> 
         <![endif]--> 
        </td> 
    </tr> 
    <tr> 
        <td bgcolor="#ffffff" align="center" style="padding: 0px 15px 20px 15px;padding: 50px 15px 50px 15px !important;" class="section-padding"> 
         <table border="0" cellpadding="0" cellspacing="0" width="500" class="responsive-table" style="border-collapse: collapse !important;width: 100% !important;"> 
          <tr> 
           <td> 
            <table width="100%" border="0" cellspacing="0" cellpadding="0" style="border-collapse: collapse !important;"> 
             <tr> 
              <td> 
               <!-- COPY --> 
               <table width="100%" border="0" cellspacing="0" cellpadding="0" style="border-collapse: collapse !important;"> 
                <tr> 
                 <td align="center" style="font-size: 25px; font-family: Helvetica, Arial, sans-serif; color: #333333; padding-top: 30px;padding: 10px 5% 10px 5% !important;text-align: center" class="padding-copy">HI THERE</td> 
                </tr> 
                <tr> 
                 <td align="center" style="padding: 20px 0 0 0; font-size: 16px; line-height: 25px; font-family: Helvetica, Arial, sans-serif; color: #666666;padding: 10px 5% 10px 5% !important;text-align: center;" class="padding-copy">BODY OF THE EMAIL</td> 
                </tr> 
               </table> 
              </td> 
             </tr> 
            </table> 
           </td> 
          </tr> 
         </table> 
        </td> 
    </tr> 
    <tr> 
        <td bgcolor="#ffffff" align="center" style="padding: 20px 0px;"> 
         <!--[if (gte mso 9)|(IE)]> 
         <table align="center" border="0" cellspacing="0" cellpadding="0" width="500"> 
         <tr> 
         <td align="center" valign="top" width="500"> 
         <![endif]--> 
         <!-- UNSUBSCRIBE COPY --> 
         <table width="100%" border="0" cellspacing="0" cellpadding="0" align="center" style="border-collapse: collapse !important; max-width: 500px;width: 100% !important;" class="responsive-table"> 
          <tr> 
          </tr> 
         </table> 
         <!--[if (gte mso 9)|(IE)]> 
         </td> 
         </tr> 
         </table> 
         <![endif]--> 
        </td> 
    </tr> 
    <tr> 
        <td bgcolor="#DFE4E6" align="center" style="padding: 20px 0px;"> 
         <!--[if (gte mso 9)|(IE)]> 
         <table align="center" border="0" cellspacing="0" cellpadding="0" width="500"> 
         <tr> 
         <td align="center" valign="top" width="500"> 
         <![endif]--> 
         <!-- UNSUBSCRIBE COPY --> 
         <table width="100%" border="0" cellspacing="0" cellpadding="0" align="center" style="border-collapse: collapse !important;max-width: 500px;width: 100% !important;" class="responsive-table"> 
          <tr> 
           <td align="center" style="font-size: 12px; line-height: 18px; color:#666666;"> 
    
           </td> 
          </tr> 
         </table> 
         <!--[if (gte mso 9)|(IE)]> 
         </td> 
         </tr> 
         </table> 
         <![endif]--> 
        </td> 
    </tr> 
    

    +0

    Просьба поделиться своим письмом/кодом по умолчанию_email_template. Вы используете классы css? – Ruby

    +0

    Привет, меня бы интересовал исходный код для всего процесса аутентификации/отправки. Мы можем как-нибудь поговорить? –

    ответ

    0

    Вы можете попытаться проверить это tutorial о том, как отправить сообщение с помощью PHP. Вы узнаете, как отправлять HTML-контент внутри тела электронной почты, вы можете достичь этого разными способами.

    Этих два являются широко используется:

    1. Используя встроенную «почты) (» функции РНР.
    2. Использование библиотеки PHPMailer.

    Просто проверьте учебное пособие, чтобы узнать, какие шаги вам нужны, и пример кода, который служит для вас руководством.

    Для получения дополнительной информации, проверьте эти темы:

    +0

    Спасибо за ваш ответ, но, как я уже упоминал, я подтверждаю, что пользователь авторизует мое веб-приложение для отправки писем из своей учетной записи Gmail. Таким образом, единственный способ, которым я могу отправить это, - это функция «Отправить» в библиотеке Google (если я ошибаюсь, пожалуйста, исправьте меня), которая удаляет все теги HTML, потому что я 'base_64' их кодирует. Мне нужно знать, есть ли другой способ отправить электронную почту, не делая этого! Я не могу использовать SMTP, потому что мне нужно сохранить message_ids & thread_ids из Google, чтобы получать электронные письма, которые мой пользователь получает! – user3523750

    0

    Используйте встроенные стили для разработки электронной почты/default_e mail_template. Не используйте классы css. Если вы используете классы, ваш дизайн будет виден в Outlook и других службах электронной почты. Но не в gmail. Поскольку gmail добавляет pre-characters к именам классов CSS.

    +0

    См. Мое редактирование! – user3523750

    0

    После нескольких часов исследований по этому вопросу я, наконец, понял это. charset в моем сыром сообщении должно быть установлено в Content-Type: text/html; charset=iso-8859-1 & не utf-8.

    Больше на эту тему здесь -

    Stackoverflow answer on the difference between UTF-8 and ISO-8859-1

    Original article from Wikipidea on ISO-8859-1

    Теперь мои письма выходят со всеми стилями в такте. Проверено на разных клиентах, & он отлично работает на всех из них!

    Смежные вопросы