2021-01-01から1ヶ月間の記事一覧

C++ にて VMime を使って メールサーバからメールを受信する

C++ にて VMime を使って メールを送信する の続きです。 対象とするメールサーバ ローカルネット内に建てた dovecot サーバ および Gmail サーバ Gmail サーバの仕様 サーバ名とポート番号 サーバ名:pop.gmail.com ポート番号 995:(SSL) 下記にあるように…

C++ にて VMime を使って 埋め込み画像付きのメールをファイルから読む

C++ にて VMime を使って 埋め込み画像付きのメールを作成する の続きです。 埋め込み画像付きのメールの構造 下記のように、multipart の中に plain の本文とHTMLのパートと埋め込み画像がある。 Content-Type: multipart/alternative Content-Type: text/p…

C++ にて VMime を使って 埋め込み画像付きのメールを作成する

C++ にて VMime を使って メールを送信する の続きです。 埋め込み画像付きのメールの仕様 メールに画像を埋め込みHTMLパートから参照することができる。 画像ファイルの添付とは異なる。 RFC 2387に規定がある。 RFC2387 The MIME Multipart/Related Conten…

C++ にて VMime を使って HTMLメールをファイルから読む

C++ にて VMime を使って HTMLメールを作成する の続きです。 HTML メールの構造 下記のように、multipartの中に本文とHTMLのデータがある。 Content-Type: multipart/alternative Content-Type: text/plain 本文のデータ Content-Type: text/html HTML のデ…

C++ にて VMime を使って HTMLメールを作成する

C++ にて VMime を使って メールを送信する の続きです。 HTML メールの仕様 RFC 2046、 RFC2854 に規定はあるが、 決め事は多くない。 RFC 2046 Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types http://www.t-net.ne.jp/~cyfis/rfc/mi…

C++ にて VMime を使って 添付ファイル付きのメールをファイルから読む

C++ にて VMime を使って ファイルからメールを読む の続きです。 添付ファイル付きのメールの構造 下記のように、multipartの中に本文と添付ファイルのデータがある。 Content-Type: multipart/mixed; Content-Type: text/plain; charset=us-ascii 本文のデ…

C++ にて VMime を使って 日本語メールをファイルから読む

C++ にて VMime を使って ファイルからメールを読む の続きです。 VMime の 日本語サポート VMime のデフォルトの文字セットは 7ビットASCIIです。 日本語など非ASCIIテキストにも対応している。 下記は、VMime Book に掲載されている例 4.7 文字セットおよ…

C++ にて VMime を使って ファイルからメールを読む

C++ にて VMime を使って メールを送信する の続きです。 メールをファイルから読む 下記は、VMime Book に掲載されている例 5.1 メッセージの解析 https://ken-ohwada.hatenadiary.org/entry/2020/12/30/160715 ファイルからメールを読んで解析する例 // Re…

C++ にて VMime を使って Gmail + OAuth で メールを送信する

C++ にて VMime を使って メールを送信する の続きです。 アクセストークン を取得する libcurl のときと同じです。 C 言語にて libcurl を使って Gmail + OAuth で メールを送信する VMime でアクセストークン を設定する VMimeのサイトに記載がある VMime …

C++ にて VMime を使って TLS 接続してサーバ明書を検証する

C++ にて VMime を使って メールを送信する の続きです。 TLS TLS (Transport Layer Security) は、インターネットにて 通信路を暗号化するためのプロトコルです。 参考 : wikipedia TLS Gmail では必須です。 Gmail 送受信時のメールの暗号化 VMime の TLS…

C++ にて VMime を使って 添付ファイル付きのメールを送信する

C++ にて VMime を使って メールを送信する の続きです。 VMime の添付ファイル mime::fileAttachment を使って、添付ファイルを作成する。 vmime::messageBuilder に追加する。 下記は、VMime Book に掲載されている例 VMime Book 添付ファイルの追加 // 添…

C言語にて ホームディレクトリのパス名を取得する

2つの方法がある (1) 環境変数 環境変数 HOME を取得する getenv("HOME"); (2) パスワードファイル パスワードファイル( /etc/passwd ) に記載されている ホームディレクトリを取得する getpwuid(getuid())->pw_dir ); 補足 macOS ではパスワードファイル( …

C言語にて 実行中のプログラムのファイルパスを取得する

Linux Linux では、 実行中のプログラムのシンボリックリンクが、 /proc/pid/exe にある。 これを readlink で読むと、ファイルパスが得られる char path[PATH_MAX + 1]; const size_t LINKSIZE = 100; char link[LINKSIZE]; // 実行中のプロセスのシンボリ…

C/C++ にて 文字列を置換する

C C言語には、文字列を検索する strstr 関数がある。 C言語関数辞典 : strstr http://www.c-tipsref.com/reference/string/strstr.html これを使って、 文字列「foo bar fiz」から target「bar」を探して、 replace「xyz」に置換する例を示す。 手順は、下記…