[解決済み] Mandrillメール添付ファイルパス
質問内容
php ラッパー経由で mandrill api を使用して送信されるメールに、いくつかの添付ファイルを追加しようとしています。様々な方法を試してみましたが、うまくファイルを添付することができません。 私は cakephp 2.x を使用していますが、この例では特に意味があるとは思えません (あるかも?!)。 私は、mandrill がメンテナンスしている php ラッパーを次の場所で使用しています。 https://bitbucket.org/mailchimp/mandrill-api-php
以下はそのコードです。
$mandrill = new Mandrill(Configure::read('Site.mandrill_key'));
$params = array(
'html' => '
<p>Hi '.$user['User']['name'].',</p>
<p>tIt is that time of the year again.<br />
<a href="http://my-site.com/members/renewal">Please login to the website members area and upload your renewal requirements</a>.</p>
<p>Kind regards.</p>',
"text" => null,
"from_email" => Configure::read('Site.email'),
"from_name" => Configure::read('Site.title'),
"subject" => "Renewal Pending",
"to" => array(array('email' => $user['User']['email'])),
"track_opens" => true,
"track_clicks" => true,
"auto_text" => true,
"attachments" => array(
array(
'path' => WWW_ROOT.'files/downloads/renewals',
'type' => "application/pdf",
'name' => 'document.pdf',
)
)
);
$mandrill->messages->send($params, true);
}
これは、メールに添付ファイルが追加され、それがpdfであることを示しますが、実際のpdfは添付されていません。 また、次のようにファイルに直接パスを追加して試してみました。
"attachments" => array(
array(
'type' => "application/pdf",
'name' => WWW_ROOT.'files/downloads/renewals/document.pdf',
)
ググってあらゆる記事を読みましたが、mandrill が添付ファイルを正しく添付するためのパスをどのように指定すればよいか、具体的な言及が見当たりません。
何かお手伝いいただけると幸いです。
解決方法は?
というパラメータを渡しているようですね。
path
しかし、Mandrill API は添付ファイルにファイルのパスを受け取りません。 send または send-template 呼び出しを使用している場合、添付ファイルは type、name、content の 3 つのキーを持つ連想配列 (ハッシュ) であるべきです。
content パラメータには、ファイルの内容を Base64 エンコードした文字列を指定します。したがって、パスの代わりに、ファイルの内容を取得して Base64 エンコードし、それを
content
の代わりに
path
.
添付ファイルを含むパラメータの詳細については、こちらの Mandrill API ドキュメントを参照してください。 https://mandrillapp.com/api/docs/messages.html#method=send
関連
-
[解決済み】PHP - 構文エラー、予期しないT_CONSTANT_ECAPSED_STRING [閉店].
-
[解決済み】PHPからPythonスクリプトを実行する
-
[解決済み】phpMyAdmin: シークレットパスフレーズ?
-
[解決済み] PHP と mod_fcgid: handle_request_ipc 関数で ap_pass_brigade が失敗する。
-
[解決済み] JavaScriptでメールアドレスを検証するのに最適な方法は何ですか?
-
[解決済み] 有効なメールアドレスの最大長を教えてください。
-
[解決済み] mailto:を使ってメールの件名や内容を設定することはできますか?
-
[解決済み] .NETでGmailを使ったメール送信
-
[解決済み] メール送信インテント
-
[解決済み】電子メールの添付ファイルを送信するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Fatal error: 未定義の関数 sqlsrv_connect() を呼び出した。
-
[解決済み】「初期通信パケットの読み込み」でMySQLサーバーに接続できなくなり、システムエラーになる。0
-
[解決済み】foreach()に与えられた引数が無効です。)
-
[解決済み】Phpのincludeが機能しない? 関数がincludeされない
-
[解決済み] SQLSTATE[HY093]: 無効なパラメータ番号: パラメータが定義されていません
-
[解決済み】PHP フェイタルエラー。未定義の関数mssql_connect()をコールしています。
-
[解決済み] * vchiqインスタンスを開くのに失敗しました。
-
[解決済み】Fatal error: mysqli_result 型のオブジェクトは使用できません [終了] 。
-
[解決済み] libapache2-mod-php7 パッケージの場所がわからない
-
[解決済み] $_SERVER['DOCUMENT_ROOT'] と $_SERVER['HTTP_HOST'] の違いについて