문제

이것이 가능한지 잘 모르겠지만 다음과 같은 발신 이메일에 파일을 첨부하려고 합니다. 맨드릴 API 파일 업로드 버튼(input type="file").솔직히 말해서 뭔지 전혀 모르겠어 document.getElementById('idOfFileInput').value 실제로 돌아옵니다.여기가 그런 초보적인 질문을 하는 곳이 아니라는 것을 알고 있지만 여기저기 찾아봤는데 찾을 수가 없습니다(여러분 중 한 분이 교활해서 5분 안에 어떤 기사를 가리킬 것이라는 것을 압니다).그 외에도 메시지에 첨부할 .txt 파일을 얻었습니다. C:\fakepath\test.txt, 브라우저가 보안을 위해 제공하는 파일 경로인 것으로 알고 있습니다.어쩌면 코드로 묻는 것이 더 나을 수도 있습니다.

단추:

Attachment(s):&nbsp;&nbsp;<input type="file" id="file">

JS:

"attachments": [
        {
            "type": "text/*",
            "name": "file_attachment",
            "content": document.getElementById('file').value
        }
    ],

문맥을 위장한 간단한 질문이라면 죄송합니다만, 그렇더라도 일주일 동안 이것저것 시도해 보고 어떤 유형의 질문을 찾아봤기 때문에 이 질문이 향후 좋은 참고 자료가 될 수 있을 것 같은 느낌이 듭니다. 해결책을 찾았지만 찾지 못했습니다.어떤 아이디어가 있나요?

도움이 되었습니까?

해결책

파일을 첨부하려면 AJAX 파일 업로드

을 볼 수 있습니다.

Mandrill API는 파일의 Base64 인코딩 문자열이 필요하므로 파일을 업로드 할 수있는 경우 서버가 API에서 사용할 수있는 Base64 인코딩 문자열을 쉽게 리턴 할 수 있습니다.

Ajax를 통해 파일을 업로드 할 많은 플러그인이 있으며 jQuery와 같은 Jaubercript 라이브러리를 사용하는 경우 jquery 파일 업로드

예를 들어 php 을 사용하는 경우

:

$result = array();
$result['status'] = 'error';
if(isset($_FILES["mandrill_attachment"]))
{
    $base64 = base64_encode(file_get_contents($_FILES["mandrill_attachment"]["tmp_name"]));
    $result['base64'] = $base64;
    $result['status'] = 'ok';
}

die(json_encode($result));
.

예제에 대해 짧게 유지했지만 파일 형식 등을 확인해야합니다.

js

var mandrill_attachment = false;

$(".attachment").uploadFile({
    url: "upload.php",
    dragDrop:false,
    multiple:false,
    autoSubmit:true,
    fileName: "mandrill_attachment",    
    returnType:"json",
    onSuccess:function(files,data,xhr)
    {
        if( data.status == 'ok' )
        {
            mandrill_attachment = data.base64;
        } else {
            alert('something went wrong...');
        }
    }
});
.

다른 팁

이것을 광범위하게 살펴본 결과 첨부 파일에 Mandrill API를 사용하여 파일 업로드 입력을 사용하는 것이 불가능한 것으로 보입니다.서버는 file type="input" 브라우저에 의해 설정된 보안 제한 때문입니다.

나는 다음을 사용하여 이 문제를 해결할 수 있었습니다. 잉크 파일 선택기 API 이메일 하단에 파일에 대한 보안 다운로드 링크를 배치하려면 약간 수상쩍은 것 같습니다.당연히 기본적으로 수행하는 것이 더 나을 것입니다. 그러나 앞서 말했듯이 그것은 불가능해 보입니다.

그러나 이 타협은 어떤 면에서는 더 나은 기본 방식보다:Ink API를 사용하면 사용자는 클래식 파일 업로드와 함께 다양한 서비스에서 업로드할 수 있으므로 파일 업로드 메커니즘의 확장성과 사용 편의성이 모두 향상됩니다.

첨부 파일에 대한 링크를 사용하는 것은 여전히 ​​의심스러워 보이지만 (API가 액세스할 수 있는) 파일 이름을 사용하여 메소드의 스팸성을 최소화할 수 있었습니다.

파일 이름] (직접 다운로드 링크와 하이퍼 링크) 이이 이메일에 첨부되었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top