2016-03-21 3 views
0

Так что я пытаюсь отправить захваченное изображение в виде прикрепленного файла для электронной почты с помощью SendGrid. Я определил функцию sendmail и метод attachImage для электронной почты.электронная почта захваченного изображения через sendgrid

public extension SendGrid { 
    public class Email { 
    ...... 
     public var images: [UIImage]! 

     public func attachImage(image: UIImage) { 
      if self.images == nil { 
       self.images = [] 
      } 
      self.images.append(image) 
     } 
    } 
} 

затем вызвать эту функцию

var sg = SendGrid(username: "*****", password: "*****") 
var email = SendGrid.Email() 

func sendMail(){ 
    screenShot() 

    do { 
     try 
     email.addTo("[email protected]", name: "Sehwan") 
     email.setFrom("[email protected]", name: "test") 
     email.setSubject("Hello Images") 
     email.setHtmlBody("<p>Up Thai, Wolfgang, Benihana, Wa.</p><br><br><p>Nice it works</p>") 
     email.attachImage(shareImage) 
    } catch { 
     print(error) 
    } 

    if(shareImage != nil){ 
     do { 
      try 
      sg.send(email, completionHandler: { (response, data, error) -> Void in 
       if let json = NSString(data: data!, encoding: NSUTF8StringEncoding) { 
        print(json) 
       } 
      }) 
     } catch { 
      print(error) 
     } 
    } 
} 

func screenShot(){ 
    UIGraphicsBeginImageContextWithOptions(CGSizeMake(backgroundImage.frame.size.width, backgroundImage.frame.size.width), false, 0) 
    self.view?.drawViewHierarchyInRect(CGRectMake(0, -40, view.bounds.size.width, view.bounds.size.height), afterScreenUpdates: true) 
    shareImage = UIGraphicsGetImageFromCurrentImageContext() 
    UIGraphicsEndImageContext() 
} 

Все работает хорошо - функция экрана захватывает часть экрана, так что я могу поделиться или сохранить в телефоне. Также работает электронная почта, за исключением того, что письмо приходит без файла изображения.

Не уверен, как я могу отправить полученное электронное изображение в приложении в виде вложения с помощью sendGrid. Я был бы очень признателен за любые советы.

ответ

0

Их API reference описывает, как это сделать.

Соответствующая секция:

файлы должны быть меньше, чем 7MB файлы для прикрепления.

Содержимое файла должно быть частью многостраничного HTTP POST.

Ex: файлы [file1.jpg] = file1.jpg & файлы [file2.pdf] = file2.pdf

+0

их примеры для файлов, которые уже имеют имя и путь. Когда я печатаю захваченное изображение, я получаю « размер {375, 375} ориентация 0 шкала 2.000000". Есть ли способ указать путь к файлу захваченного изображения в приложении? –

+0

Кстати, большое спасибо за редактирование! Я забыл удалить id и пароль из кода. Опять же, спасибо –

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