【问题标题】:Get sender email with inboxSDK使用 inboxSDK 获取发件人电子邮件
【发布时间】:2018-06-01 04:00:48
【问题描述】:

如何通过indboxSDK 获取发件人e-mail?我试过这个:

InboxSDK.load(2, 'sdk_marcin123_e44a6df9c6').then(sdk => {
sdk.Conversations.registerThreadViewHandler(threadView => {

var tytul=threadView.getSubject();
var contact=threadView.getContacts();

//var contact=sdk.User.getFromContact();

const el = document.createElement("div");
    el.innerHTML = '<a href=fire.php?email='+ contact +'>Szukaj klienta</a>';


    threadView.addSidebarContentPanel({
        title: 'Szukaj w EU',
        iconUrl: chrome.runtime.getURL('monkey.png'),
        el
    });
});
});

但我明白了:

记录的错误:TypeError:threadView.getContacts 不是函数 在sdk

如何从电子邮件打印并在 HTML 链接中显示?

【问题讨论】:

    标签: javascript gmail inboxsdk


    【解决方案1】:

    您可以使用 MessageView 处理程序获取发件人信息,这相当简单:

    sdk.Conversations.registerMessageViewHandler(function(messageView){
     var sender = messageView.getSender();
     // {emailAddress:'some@email.com', name: 'Some Name'}
    });
    

    但是,正如你所看到的,这超出了ThreadView的范围,所以我建议在两个范围之外都有一个变量,在MessageView中获取发送者信息,然后在ThreadView中使用它。

    我在我开发的扩展中做了类似的事情,并使用 setInterval 来不断观察我想使用的变量,在你的情况下它应该是这样的:

    InboxSDK.load(2, 'sdk_marcin123_e44a6df9c6').then(sdk => {
      var sender;
    
      // Use MessageView to get the sender information
      sdk.Conversations.registerMessageViewHandler(messageView => {
        sender = messageView.getSender();
      });
    
      sdk.Conversations.registerThreadViewHandler(threadView => {
    
        var tytul=threadView.getSubject();
        var contact=threadView.getContacts();
    
        const el = document.createElement("div");
    
        setInterval(() => {
          if (sender){
            // Do something with the sender information
            el.innerHTML = '<a href=fire.php?email='+ contact +'>Szukaj klienta</a>';
    
            threadView.addSidebarContentPanel({
              title: 'Szukaj w EU',
              iconUrl: chrome.runtime.getURL('monkey.png'),
              el
            });
          }
        },1000);
    
      });
    });
    

    【讨论】:

      【解决方案2】:

      我试过了,这个代码在从 Gmail 发送邮件之前就可以工作了。

      InboxSDK.load('1', 'sdk_marcin123_e44a6df9c6').then(function (sdk) {
      // the SDK has been loaded, now do something with it!
      sdk.Compose.registerComposeViewHandler(function (composeView) {
      composeView.on('presending', function (event) {
      var cv = event.composeView;
      cv.insertTextIntoBodyAtCursor(' From Doyenhub Software Solutions LLP.');
      var subject = cv.getSubject();
      var mail_body = cv.getTextContent();
      var toAddress = cv.getToRecipients();
      var ccAddress = cv.getCcRecipients();
      var bccAddress = cv.getBccRecipients();
      //This variables will give the email data from the compose mail box
      });
      });
      

      希望对你有帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-06
        • 1970-01-01
        • 1970-01-01
        • 2014-09-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-25
        相关资源
        最近更新 更多