2016-03-21 40 views
0

所以我試圖發送捕獲的圖像作爲使用SendGrid電子郵件的附件。我爲Email定義了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的一部分。

例如:文件[file1.jpg] = file1.jpg &文件[file2.pdf] = file2.pdf

+0

他們的例子是已經有一個名稱和路徑的文件。當我打印拍攝的圖像時,我得到「大小{375,375}方向0比例2.000000」。有沒有辦法給應用程序中捕獲的圖像文件的路徑? –

+0

順便說一句,非常感謝你的編輯!我忘了從代碼中刪除ID和密碼。再次,謝謝 –