coreserverを使ってwebサービスアプリを作ることになったが、セキュリティが甘く受信先で拒否されることが頻繁に起きた。そこでsmtpサーバーだけgmailを使ってみた。
簡単にできると思ったが、添付ファイルの日本語ファイル名の文字化けに苦労した。

最終的に以下で落ち着いた

$mimeObject -> addAttachment($file // data
,'application/octet-stream' // content-type
,mb_substr(mb_strrchr($file, "/"), 1) // attached file name
,true // isfile
,'base64' // encoding
,'attachment' // disposition
,'' // charset
,'' // language
,'' // location
,'base64' // n_encoding
,'base64' // f_encoding
,'' // description
,'UTF-8' // h_charset
);

最初の$fileはファイル名
mb_substr(mb_strrchr($file, "/"), 1) は$fileがpathも含まれるためpathを取り除いている
true はファイル名であることを明示
UTF-8はgmailの仕様

参考にさせていただいたサイト
PEAR::Mail_mimeで日本語ファイル名の添付ファイルを送る方法
https://koyhogetech.hatenablog.com/entry/20120404/mailmime

mb_substr(mb_strrchr($file, "/"), 1) は
ファイル名などに日本語が含まれるパスでbasename関数が失敗するバグ
https://php1st.com/1434

ありがとうございました。