• ベストアンサー

Linux Cからのメール送信

a-kumaの回答

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

可能ですよ。実際に sendmail のプログラムもそうやって作られている のだし。 socket で通信するプログラムが組めて、SMTP のプロトコルを理解していれば 誰でも作れます。SMTP のプロトコルは RFC(1123だったかな?)を読めば わかります。 SMTP サーバに対して、ポート23で connect して、HELO して、MAIL して RCPT して、DATA して、QUIT する、って感じ。 そんなに難しいプログラムには(エラー処理なんかをはしょれば)ならない ですが、少なくとも popen で sendmail を使うよりは、ずうっと面倒です。

hideot
質問者

お礼

なるほどー。 telnetでsmtpサーバに接続した時に入力するコマンド 手順をソケットプログラムで送信していけばいいと いうことですね。 やってみます。有難うございました。

関連するQ&A

  • 【C言語】メールを送信するプログラムについて

    お世話になっています。 perl(Linuxでもあるのでしょうか?)で扱えるsendmail関数は、 宛先さえ指定すればメールを送信出来ます。 その機能を実装したいのですが、可能でしょうか。 つまり、SMTPサーバーを指定せずに送信機能が使いたいのです。 理由は、ソフトウェアでアンケートソフトを作りたいのですが、 例えばGmail等のサーバーを借りて、そのアカウントのSMTPを指定したソフトを配布した場合、 どえらいことになってしまうのではないか!?と思っていますし、実際そうなると思うので…… ご存知のかたがいらっしゃいましたら、実装が可能か、またどのような言葉で調べればいいかなどご教授ください。 よろしくお願いいたします。 なお、開発環境はWindowsです(7 home 64bit) ※蛇足ですが、実はC言語で実装ではなくActiveBasicというBASIC言語で開発しようとしています。 ですが、VBの用にマクロが充実しておらず、おそらくActiveBasicと言ってもご存じの方が少ないと思いC言語のフォームで質問させていただいております。 もちろんC言語でのご回答で大丈夫ですので、お願いします。

  • Linuxからのメール送信について

    CentOS6.4を使っております。会社のネットワーク規制によりメール関係で465と995ポートの送信のみ(一方通行)しかできない状況で、サーバーのroot宛てメールをGmailに転送できないかと思っております。 いくつか関係するサイトを拝見して自分なりに設定をしてみたのですが、Sendmail,Postfix,SSMTPなどすべて失敗してしまいます…。 HTTPサーバーを立てて、汎用のメール送信PHPプログラムからは正常に送信でき、またLinux用のメーラーでもGmailアカウントを設定して送信できました。 ログを見ると、 Oct 2 16:50:42 svr0 postfix/smtp[10045]: E74A840A08: to=<XXXXX@gmail.com>, orig_to=<root@localhost>, relay=smtp.gmail.com[173.194.79.108]:465, delay=170214, delays=169613/0.1/600/0, dsn=4.4.2, status=deferred (conversation with smtp.gmail.com[173.194.79.108] timed out while receiving the initial server greeting) と吐き出しています。 どなた様か対処法をご教授願えますでしょうか?宜しくお願いします。

  • root宛のメールを他へメール送信したい

    RedHat Linux 7.3 を使用しています。 cron実行結果などのroot宛メールを別に立てているsendmailサーバ経由で他にメール送信しようと考えています。 sendmailサーバと同じように自分自身でsendmailをサーバとして動かし.forwardで設定すればメール送信できると思うのですが、 その為だけにsendmailをセットアップするのはちょっと面倒です。 もっと簡単にroot宛のメールを他にメール送信する方法はあるのでしょうか?

  • Linuxサーバから社内SMTPサーバを経由してメールを送信したい

    いつもお世話になっております。 Linuxサーバよりメールを送信したいのですが、同じ社内に設置している別のSMTPサーバを使って送信したいと考えています。 Windowsサーバであれば"php.ini"の"SMTP"に利用したいSMTPサーバを指定してやればよいかと思いますが、Linuxの場合はどうすれば良いでしょうか? 実際にやりたいこととしては、Linuxサーバより公開しているフォームメールのページにアクセスして情報を送信した際に、社内のSMTPサーバを経由してメールが管理者に送信されるというものです。 その他、必要な情報等ありましたら、お申し付けください。 以上、宜しくお願い致します。

  • 少し特殊?な状況でメール送信

    WEB関係の仕事をしていますが、まだまだ勉強中の身です。 文才がなく長文になりそうですので予めお詫び致します。 クライアント(A社とします)からPHPでメール送信プログラムの作成依頼を受けましたが、少し特殊?な状況でメール送信ができません。 WEBサーバ:A社に設置(WEB予約システムをメイン) WEBサーバの構築と管理:予約システムの制作会社(B社とします) WEBサーバ内には独自ドメインのホームページ(hoge.orgとします) ドメイン・DNS管理:C社 メールアドレス:独自ドメインで取得できず、abc@hoge.netという別ドメインで取得(C社サーバ内) という状況です。 WEBサーバ内でphpinfo()を実行したところ、メール関係では include_path = .:/usr/local/lib/php sendmail_from = no value sendmail_path = /usr/sbin/sendmail -t -i SMTP = localhost smtp_port = 25 となっています。 sendmail_fromがno valueですが、上記を見たところsendmailが起動していると思ったのですが、これだけでは判断できないのでしょうか? PHPでmb_send_mail()を実行した結果、TRUE が帰ってきますがメールは届きません。(宛先はabc@hoge.net) ちなみに、B社ではメール関係のプログラムはインストールしていないと言っています (ですが管理が杜撰なので正直、信用できません)し、WEBサーバは予約システムがメインでありメールサーバを入れると ウィルスが予約システムに影響を及ぼす可能性があるのでインストールできないと言われました。(正直、この対応にも不満が残ります) ファイル作成 → B社へ渡し → B社がサーバへアップロードと言う流れですのでこちらでサーバ設定を見ることもできません。 こういった状況でWEBサーバ内のPHPからabc@hoge.netへ送信する方法はあるのでしょうか? phpinfo()を見る限りPEARもインストールされていないようですが、これだけでは判断できませんか? B社の穴を見つけるようで気分が悪いですがクライアントの要望に答えたく考え悩んでいます。 B社いわく「”現状”の設定内で対応してくれ」とのことですので・・・。

    • ベストアンサー
    • PHP
  • WindowsでのC と LinuxでのC の違いについて

    これから、Linux OSでC言語のプログラミングを行うことになりました。ディストリビューションはVine Linux 3.2 を利用します。 開発方法としては、Windows Xp 上でgccを利用できるIDE(Dev-C++ 4.9.9.2を利用します)で開発を行い(テスト的にコンパイル)、できたソースをLinux上でコンパイル・リンクするという方法で行おうと考えています。 そこで、疑問があります。 ANSIライブラリの中にはシステムコールを実行するものがあると思います。システムコールはOSの一部の機能ということですので、WindowsとLinuxとでは当然その機能は違ってくると思います。 つまり、WindowsでANSIライブラリを利用して実装したプログラム(コンパイルもとおる)がLinux上で正常に機能するのか(そもそもコンパイルがとおるか)がわかりません。 どなたかご教授いただけましたら幸いです。 宜しくお願いします。

  • C言語でのメール送信

    C言語でメール送信するプログラムを作りたいのですが、良く分かりません。ある条件を満たしたら設定しておいたメールアドレス先にメールを自動送信するようなプログラムを作ろうと思っています。どなたかご教授お願いいたします。(プログラム初心者) OSはLinuxです。 (例) if (i == 100) { メール送信*********** }

  • phpでメール送信

    Warning: Mailserver rejected our "sendmail_from" setting in c:\phpdev\www\test\php\mail\mail.php on line 11 エラー:送信に失敗しました 上記の様にエラーが出て送信できません あて先は、xxxxx@yahoo.co.jp他、どのアドレスに送れません。 php.iniの部分は下記の通りです。 [mail function] ; For Win32 only. SMTP =smtp.mail.yahoo.co.jp ; For Win32 only. sendmail_from =xxxxx@yahoo.co.jp ; For Unix only. You may supply arguments as well (default: 'sendmail -t -i'). ;sendmail_path = ヤフーのsmtpサーバーは、「POP before SMTP」か何かが原因でphpからこの方法でメールは送れませんか? 現在、多くのsmtpサーバーで「POP before SMTP」がかかっていると、ネットで見たのですが、phpからメールを送りたいのですが、どうすればよいでしょか? あと、自宅マシンに独自ドメインを取得しRadishを入れて、smtpサーバを立ち上げて、こちらに送ると、携帯以外には送信出来る様です、でも今時、携帯に送信出来ないと使い物にならないので。こちらは、携帯のサーバーのセキュリティでウチのドメインがはじかれているのでしょうか? 宜しくお願いします。

    • ベストアンサー
    • PHP
  • C# メール送信ついて困っています

    c#で送信をしょうとしたらエラーが出ています。 ※自分のプロバイダー(biglobe)を使ってメールの例です。 //Mail Initialize System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient() smtp.Host = "mail.biglobe.ne.jp"; smtp.Port = 587; //Mail認証 smtp.Credentials = new System.Net.NetworkCredential("ユーザー名", "パスワード"); //SSL smtp.EnableSsl =true; System.Net.Mail.MailMessage oMsg = new System.Net.Mail.MailMessage("to アドレス", "from アドレス", "件名", "本文"); //メール送信 smtp.Send(oMsg); これを実施したらエラーが サーバーはセキュリティで保護された接続をサポートしていません。って出ています。 //SSLをfalseにしたら smtp.EnableSsl =false; メールボックスが使用できません。 サーバーの応答: Can not speak with youって出ています。 どこがいけないのでしょうか? どなたか教えて戴けませんか?お願いいたします。

  • sendmailでホットメールのSMTP送信

    今年からホットメールでのSMTP POP3での送受信が可能になったということで 「eWEB」さんのメールフォームを使用し自宅サーバから送信をしようと思っています。(下記のURLのフォームを使用) http://php.eweb-design.com/1301_mail.html 現在XAMPPで鯖を構築しているのですがホットメールのでSMTPを利用した送信ができません。 C:\xampp\sendmail\sendmail.iniを smtp_server=smtp.live.com smtp_port=587 auth_username=account@hotmail.com auth_password=password C:\xampp\apache\bin\php.iniを SMTP = smtp.live.com smtp_port = 587 のように書き換え「eWEB」さんのフォームを使用したのですが送信ができないようです。 sendmailを利用してホットメールのSMTP送信は何か足りないものがあるのでしょうか? 説明が長くなってしまいましたが、もしお分かりになる方がいましたら宜しくお願いいたします。

    • 締切済み
    • PHP