Symfony Component Advent Calendar 2023の19日目の記事です。
MIMEを扱うよ、"Mime"
Mimeは、MIMEを扱うためのコンポーネントです。
インストール
composer require symfony/mime
使い方 その1
use Symfony\Component\Mime\Email;
$email = new Email();
$email
->from('info@qiita.com')
->to('test@qiita.com')
->subject('テストメール')
->priority(Email::PRIORITY_HIGH)
->attachFromPath('/var/www/', 'hoge.png', 'image/png')
->text("お元気ですか?")
->html('<h1>お元気ですか?</h1>');
Mimeの使い方その1は、メールデータを作ることです。Email
オブジェクトを作って、それぞれの項目に合わせたメソッドを呼ぶことでメールデータが作成できます。
MIME(Multipurpose Internet Mail Extensions)とは、TCP/IPネットワーク上でやり取りする電子メールで、当初の規格で唯一記載することができたASCII英数字以外のデータ(各国語の文字、添付ファイルなど)を取り扱うことができるようにする拡張仕様。
なので、この仕様に則ったメールデータが作れます。
メールを送るにはMailerコンポーネントが必要です。
メールアドレスのバリデーションとして、equlias/email-validator
が必要になる場合があります。
composer require egulias/email-validator
使い方 その2
使い方その2は、『MIMEタイプ』も扱うことです。MIMEタイプから拡張子、ファイル内容からMIMEタイプを取得(推測)することができます。
use Symfony\Component\Mime\MimeTypes;
$mimeTypes = new MimeTypes();
// MIMEタイプから拡張子を取得
$extensions = $mimeTypes->getExtension('image/png'); // ['png']
// ファイルからMIMEタイプを推測
$mimeType = $mimeTypes->guessMimeType('/var/www/hoge.gif'); // 'image/gif
まとめ
今回はMIME
でした。ファイルアップロードなどの処理でMIMEタイプ判断したりなどファイルを扱う時にも使いますが、実はメールの作成でも役立ってるコンポーネントというのは知りませんでした。