応募者が履歴書を pdf、doc、または docx 拡張子でアップロードできるようにする雇用申請書を作成しました。次に、Sendgrid を使用して、彼らの情報を電子メールで送信し、人事部に再開します。
テストの結果、メールを送信するとエラーが発生することがわかりました。
パラメータ添付[resume.pdf]はutf8ではありません
この問題を解決するにはどうすればよいですか? メールに添付する前に、アップロードされたすべてのファイルを utf-8 にエンコードする必要がありますか? これにより問題が発生したり、ユーザーがアップロードした履歴書が変更されたりすることはありますか?
SendGrid API 経由で送信するために使用する PHP Curl コードを次に示します (注: REST API を使用する必要があります。SMTP はクライアント Web サーバーで構成されていません)。
<?php
$mail['from'] = 'humanresources@email.org';
$mail['fromname'] = 'Human Resources';
$mail['to'] = 'person@email.com';
$mail['subject'] = character_limiter('Employment: '. $application['position'], 50);
$mail['html'] = '<p><strong>Name:</strong> '.$application['firstname'].' '.$application['lastname'].'</p>';
$mail['html'] .= '<p><strong>Position:</strong> '.$application['position'].'</p>';
$mail['html'] .= '<p><strong>Date:</strong> '.mdate('%m/%d/%Y %g:%i %A', $application['timestamp_saved']).'</p>';
$mail['html'] .= '<p><strong>Email:</strong> '.$application['email'].'</p>';
$mail['files['.$application['pdf'].']'] = '@saved_applications/'. $application['pdf'];
//Sendgrid Credientals
$mail['api_user'] = 'sendgrid_user';
$mail['api_key'] = 'sendgrid_pass';
print_r($mail);
// Generate curl request
$session = curl_init('https://sendgrid.com/api/mail.send.json');
curl_setopt ($session, CURLOPT_POST, true);
curl_setopt ($session, CURLOPT_POSTFIELDS, $mail);
curl_setopt($session, CURLOPT_HEADER, false);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
// obtain response
$response = curl_exec($session);
curl_close($session);
// print everything out
$output = json_decode($response, TRUE);
print_r($output);
?>