0

私は MailChimps inline-css フォームをhttp://beaker.mailchimp.com/inline-cssで使用しています。電子メールとして送信する際に使用する html ファイルを準備するという素晴らしい仕事をします。

私はAPIキーを持っています。1 回の API 呼び出しだけのために PHP アプリを実行する必要はありません。curl を使用して inlineCss API にアクセスできる場合は? もしそうなら、構文は何ですか?

ドキュメントページは次のとおりです: http://apidocs.mailchimp.com/api/1.2/inlinecss.func.php

この要点の行: 2096: https://gist.github.com/740362も参照してください。

私のキーは次のようになります: f1b46???????????????????f2d5-us2

これが私が達成したいことの始まりです:

curl post -d @input.html apiKey=xxxxxxxx "http://us1.api.mailchimp.com/1.2/"

ありがとうございました

4

1 に答える 1

1

これは、同様のソリューションを探している人のためにハッキングしたものです。コメント、その他のオプションを歓迎します:

import os import re import urllib import mechanize import xml.sax.saxutils as saxutils from xml.sax.saxutils import unescape

try:  
  issueRoot = os.environ['newslettersroot'] + os.environ['currYear'] + '/' + os.environ['issueRoot'] + '/'
except KeyError: 
   print "Please run init.bat"
   sys.exit(1)

srcEmailFilename = 'email.html'
dstEmailFilename = 'email_inline_css.html'


# retrieve <body> section only
html = open(issueRoot + srcEmailFilename, 'rb').read()
html = re.findall("(?si)<body.*?</body>", html)[0]


# use mailchimp inlineCss site to inject class rules into html tags
response = mechanize.urlopen("http://beaker.mailchimp.com/inline-css")
# retrieve form
form = mechanize.ParseResponse(response, backwards_compat=False)[0]

form["html"] = html
# form["strip"] = "checked"

# submit form and retrieve result
html = mechanize.urlopen(form.click()).read()


match = re.search('<textarea name="text" cols="100" rows="12">(.*?)</textarea>', html, re.DOTALL | re.IGNORECASE | re.MULTILINE)

if not match:
    print html
    exit("Expected to find output from mailchimp.")

# clean up output
html = match.group(1)
html = saxutils.unescape(html)
html = urllib.unquote_plus(html)
html = unescape(html, {"&apos;": "'", "&quot;": '"'})
html = html.replace('&amp;', '&').replace('%2F', '/').replace('%3A', ':')


# @sed -r 's/ class="[a-zA-Z0-9-]+"//g' %newslettersroot%%currYear%\%issueRoot%\email_inlinedcss.html > %newslettersroot%%currYear%\%issueRoot%\email_removedstyle.html

#replace class tags
html = re.sub(r'(?sim)\s*class="[a-zA-Z0-9-]+"', "", html)

fh = open(issueRoot + dstEmailFilename, 'wb')
fh.write(html)
fh.close()
于 2012-07-09T20:41:57.957 に答える