| Revision | 86f48016d507014165b22f2c8f93bc94d18516b7 (tree) |
|---|---|
| Time | 2011-01-23 10:53:58 |
| Author | nobody <nobody@exam...> |
| Commiter | nobody |
バージョン1.4.23に追随。
オリジナルのファイルもまとめて管理することに変更。
| @@ -0,0 +1,451 @@ | ||
| 1 | +@c The GNU Free Documentation License. | |
| 2 | +@center Version 1.2, November 2002 | |
| 3 | + | |
| 4 | +@c This file is intended to be included within another document, | |
| 5 | +@c hence no sectioning command or @node. | |
| 6 | + | |
| 7 | +@display | |
| 8 | +Copyright @copyright{} 2000,2001,2002 Free Software Foundation, Inc. | |
| 9 | +51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | |
| 10 | + | |
| 11 | +Everyone is permitted to copy and distribute verbatim copies | |
| 12 | +of this license document, but changing it is not allowed. | |
| 13 | +@end display | |
| 14 | + | |
| 15 | +@enumerate 0 | |
| 16 | +@item | |
| 17 | +PREAMBLE | |
| 18 | + | |
| 19 | +The purpose of this License is to make a manual, textbook, or other | |
| 20 | +functional and useful document @dfn{free} in the sense of freedom: to | |
| 21 | +assure everyone the effective freedom to copy and redistribute it, | |
| 22 | +with or without modifying it, either commercially or noncommercially. | |
| 23 | +Secondarily, this License preserves for the author and publisher a way | |
| 24 | +to get credit for their work, while not being considered responsible | |
| 25 | +for modifications made by others. | |
| 26 | + | |
| 27 | +This License is a kind of ``copyleft'', which means that derivative | |
| 28 | +works of the document must themselves be free in the same sense. It | |
| 29 | +complements the GNU General Public License, which is a copyleft | |
| 30 | +license designed for free software. | |
| 31 | + | |
| 32 | +We have designed this License in order to use it for manuals for free | |
| 33 | +software, because free software needs free documentation: a free | |
| 34 | +program should come with manuals providing the same freedoms that the | |
| 35 | +software does. But this License is not limited to software manuals; | |
| 36 | +it can be used for any textual work, regardless of subject matter or | |
| 37 | +whether it is published as a printed book. We recommend this License | |
| 38 | +principally for works whose purpose is instruction or reference. | |
| 39 | + | |
| 40 | +@item | |
| 41 | +APPLICABILITY AND DEFINITIONS | |
| 42 | + | |
| 43 | +This License applies to any manual or other work, in any medium, that | |
| 44 | +contains a notice placed by the copyright holder saying it can be | |
| 45 | +distributed under the terms of this License. Such a notice grants a | |
| 46 | +world-wide, royalty-free license, unlimited in duration, to use that | |
| 47 | +work under the conditions stated herein. The ``Document'', below, | |
| 48 | +refers to any such manual or work. Any member of the public is a | |
| 49 | +licensee, and is addressed as ``you''. You accept the license if you | |
| 50 | +copy, modify or distribute the work in a way requiring permission | |
| 51 | +under copyright law. | |
| 52 | + | |
| 53 | +A ``Modified Version'' of the Document means any work containing the | |
| 54 | +Document or a portion of it, either copied verbatim, or with | |
| 55 | +modifications and/or translated into another language. | |
| 56 | + | |
| 57 | +A ``Secondary Section'' is a named appendix or a front-matter section | |
| 58 | +of the Document that deals exclusively with the relationship of the | |
| 59 | +publishers or authors of the Document to the Document's overall | |
| 60 | +subject (or to related matters) and contains nothing that could fall | |
| 61 | +directly within that overall subject. (Thus, if the Document is in | |
| 62 | +part a textbook of mathematics, a Secondary Section may not explain | |
| 63 | +any mathematics.) The relationship could be a matter of historical | |
| 64 | +connection with the subject or with related matters, or of legal, | |
| 65 | +commercial, philosophical, ethical or political position regarding | |
| 66 | +them. | |
| 67 | + | |
| 68 | +The ``Invariant Sections'' are certain Secondary Sections whose titles | |
| 69 | +are designated, as being those of Invariant Sections, in the notice | |
| 70 | +that says that the Document is released under this License. If a | |
| 71 | +section does not fit the above definition of Secondary then it is not | |
| 72 | +allowed to be designated as Invariant. The Document may contain zero | |
| 73 | +Invariant Sections. If the Document does not identify any Invariant | |
| 74 | +Sections then there are none. | |
| 75 | + | |
| 76 | +The ``Cover Texts'' are certain short passages of text that are listed, | |
| 77 | +as Front-Cover Texts or Back-Cover Texts, in the notice that says that | |
| 78 | +the Document is released under this License. A Front-Cover Text may | |
| 79 | +be at most 5 words, and a Back-Cover Text may be at most 25 words. | |
| 80 | + | |
| 81 | +A ``Transparent'' copy of the Document means a machine-readable copy, | |
| 82 | +represented in a format whose specification is available to the | |
| 83 | +general public, that is suitable for revising the document | |
| 84 | +straightforwardly with generic text editors or (for images composed of | |
| 85 | +pixels) generic paint programs or (for drawings) some widely available | |
| 86 | +drawing editor, and that is suitable for input to text formatters or | |
| 87 | +for automatic translation to a variety of formats suitable for input | |
| 88 | +to text formatters. A copy made in an otherwise Transparent file | |
| 89 | +format whose markup, or absence of markup, has been arranged to thwart | |
| 90 | +or discourage subsequent modification by readers is not Transparent. | |
| 91 | +An image format is not Transparent if used for any substantial amount | |
| 92 | +of text. A copy that is not ``Transparent'' is called ``Opaque''. | |
| 93 | + | |
| 94 | +Examples of suitable formats for Transparent copies include plain | |
| 95 | +@sc{ascii} without markup, Texinfo input format, La@TeX{} input | |
| 96 | +format, @acronym{SGML} or @acronym{XML} using a publicly available | |
| 97 | +@acronym{DTD}, and standard-conforming simple @acronym{HTML}, | |
| 98 | +PostScript or @acronym{PDF} designed for human modification. Examples | |
| 99 | +of transparent image formats include @acronym{PNG}, @acronym{XCF} and | |
| 100 | +@acronym{JPG}. Opaque formats include proprietary formats that can be | |
| 101 | +read and edited only by proprietary word processors, @acronym{SGML} or | |
| 102 | +@acronym{XML} for which the @acronym{DTD} and/or processing tools are | |
| 103 | +not generally available, and the machine-generated @acronym{HTML}, | |
| 104 | +PostScript or @acronym{PDF} produced by some word processors for | |
| 105 | +output purposes only. | |
| 106 | + | |
| 107 | +The ``Title Page'' means, for a printed book, the title page itself, | |
| 108 | +plus such following pages as are needed to hold, legibly, the material | |
| 109 | +this License requires to appear in the title page. For works in | |
| 110 | +formats which do not have any title page as such, ``Title Page'' means | |
| 111 | +the text near the most prominent appearance of the work's title, | |
| 112 | +preceding the beginning of the body of the text. | |
| 113 | + | |
| 114 | +A section ``Entitled XYZ'' means a named subunit of the Document whose | |
| 115 | +title either is precisely XYZ or contains XYZ in parentheses following | |
| 116 | +text that translates XYZ in another language. (Here XYZ stands for a | |
| 117 | +specific section name mentioned below, such as ``Acknowledgements'', | |
| 118 | +``Dedications'', ``Endorsements'', or ``History''.) To ``Preserve the Title'' | |
| 119 | +of such a section when you modify the Document means that it remains a | |
| 120 | +section ``Entitled XYZ'' according to this definition. | |
| 121 | + | |
| 122 | +The Document may include Warranty Disclaimers next to the notice which | |
| 123 | +states that this License applies to the Document. These Warranty | |
| 124 | +Disclaimers are considered to be included by reference in this | |
| 125 | +License, but only as regards disclaiming warranties: any other | |
| 126 | +implication that these Warranty Disclaimers may have is void and has | |
| 127 | +no effect on the meaning of this License. | |
| 128 | + | |
| 129 | +@item | |
| 130 | +VERBATIM COPYING | |
| 131 | + | |
| 132 | +You may copy and distribute the Document in any medium, either | |
| 133 | +commercially or noncommercially, provided that this License, the | |
| 134 | +copyright notices, and the license notice saying this License applies | |
| 135 | +to the Document are reproduced in all copies, and that you add no other | |
| 136 | +conditions whatsoever to those of this License. You may not use | |
| 137 | +technical measures to obstruct or control the reading or further | |
| 138 | +copying of the copies you make or distribute. However, you may accept | |
| 139 | +compensation in exchange for copies. If you distribute a large enough | |
| 140 | +number of copies you must also follow the conditions in section 3. | |
| 141 | + | |
| 142 | +You may also lend copies, under the same conditions stated above, and | |
| 143 | +you may publicly display copies. | |
| 144 | + | |
| 145 | +@item | |
| 146 | +COPYING IN QUANTITY | |
| 147 | + | |
| 148 | +If you publish printed copies (or copies in media that commonly have | |
| 149 | +printed covers) of the Document, numbering more than 100, and the | |
| 150 | +Document's license notice requires Cover Texts, you must enclose the | |
| 151 | +copies in covers that carry, clearly and legibly, all these Cover | |
| 152 | +Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on | |
| 153 | +the back cover. Both covers must also clearly and legibly identify | |
| 154 | +you as the publisher of these copies. The front cover must present | |
| 155 | +the full title with all words of the title equally prominent and | |
| 156 | +visible. You may add other material on the covers in addition. | |
| 157 | +Copying with changes limited to the covers, as long as they preserve | |
| 158 | +the title of the Document and satisfy these conditions, can be treated | |
| 159 | +as verbatim copying in other respects. | |
| 160 | + | |
| 161 | +If the required texts for either cover are too voluminous to fit | |
| 162 | +legibly, you should put the first ones listed (as many as fit | |
| 163 | +reasonably) on the actual cover, and continue the rest onto adjacent | |
| 164 | +pages. | |
| 165 | + | |
| 166 | +If you publish or distribute Opaque copies of the Document numbering | |
| 167 | +more than 100, you must either include a machine-readable Transparent | |
| 168 | +copy along with each Opaque copy, or state in or with each Opaque copy | |
| 169 | +a computer-network location from which the general network-using | |
| 170 | +public has access to download using public-standard network protocols | |
| 171 | +a complete Transparent copy of the Document, free of added material. | |
| 172 | +If you use the latter option, you must take reasonably prudent steps, | |
| 173 | +when you begin distribution of Opaque copies in quantity, to ensure | |
| 174 | +that this Transparent copy will remain thus accessible at the stated | |
| 175 | +location until at least one year after the last time you distribute an | |
| 176 | +Opaque copy (directly or through your agents or retailers) of that | |
| 177 | +edition to the public. | |
| 178 | + | |
| 179 | +It is requested, but not required, that you contact the authors of the | |
| 180 | +Document well before redistributing any large number of copies, to give | |
| 181 | +them a chance to provide you with an updated version of the Document. | |
| 182 | + | |
| 183 | +@item | |
| 184 | +MODIFICATIONS | |
| 185 | + | |
| 186 | +You may copy and distribute a Modified Version of the Document under | |
| 187 | +the conditions of sections 2 and 3 above, provided that you release | |
| 188 | +the Modified Version under precisely this License, with the Modified | |
| 189 | +Version filling the role of the Document, thus licensing distribution | |
| 190 | +and modification of the Modified Version to whoever possesses a copy | |
| 191 | +of it. In addition, you must do these things in the Modified Version: | |
| 192 | + | |
| 193 | +@enumerate A | |
| 194 | +@item | |
| 195 | +Use in the Title Page (and on the covers, if any) a title distinct | |
| 196 | +from that of the Document, and from those of previous versions | |
| 197 | +(which should, if there were any, be listed in the History section | |
| 198 | +of the Document). You may use the same title as a previous version | |
| 199 | +if the original publisher of that version gives permission. | |
| 200 | + | |
| 201 | +@item | |
| 202 | +List on the Title Page, as authors, one or more persons or entities | |
| 203 | +responsible for authorship of the modifications in the Modified | |
| 204 | +Version, together with at least five of the principal authors of the | |
| 205 | +Document (all of its principal authors, if it has fewer than five), | |
| 206 | +unless they release you from this requirement. | |
| 207 | + | |
| 208 | +@item | |
| 209 | +State on the Title page the name of the publisher of the | |
| 210 | +Modified Version, as the publisher. | |
| 211 | + | |
| 212 | +@item | |
| 213 | +Preserve all the copyright notices of the Document. | |
| 214 | + | |
| 215 | +@item | |
| 216 | +Add an appropriate copyright notice for your modifications | |
| 217 | +adjacent to the other copyright notices. | |
| 218 | + | |
| 219 | +@item | |
| 220 | +Include, immediately after the copyright notices, a license notice | |
| 221 | +giving the public permission to use the Modified Version under the | |
| 222 | +terms of this License, in the form shown in the Addendum below. | |
| 223 | + | |
| 224 | +@item | |
| 225 | +Preserve in that license notice the full lists of Invariant Sections | |
| 226 | +and required Cover Texts given in the Document's license notice. | |
| 227 | + | |
| 228 | +@item | |
| 229 | +Include an unaltered copy of this License. | |
| 230 | + | |
| 231 | +@item | |
| 232 | +Preserve the section Entitled ``History'', Preserve its Title, and add | |
| 233 | +to it an item stating at least the title, year, new authors, and | |
| 234 | +publisher of the Modified Version as given on the Title Page. If | |
| 235 | +there is no section Entitled ``History'' in the Document, create one | |
| 236 | +stating the title, year, authors, and publisher of the Document as | |
| 237 | +given on its Title Page, then add an item describing the Modified | |
| 238 | +Version as stated in the previous sentence. | |
| 239 | + | |
| 240 | +@item | |
| 241 | +Preserve the network location, if any, given in the Document for | |
| 242 | +public access to a Transparent copy of the Document, and likewise | |
| 243 | +the network locations given in the Document for previous versions | |
| 244 | +it was based on. These may be placed in the ``History'' section. | |
| 245 | +You may omit a network location for a work that was published at | |
| 246 | +least four years before the Document itself, or if the original | |
| 247 | +publisher of the version it refers to gives permission. | |
| 248 | + | |
| 249 | +@item | |
| 250 | +For any section Entitled ``Acknowledgements'' or ``Dedications'', Preserve | |
| 251 | +the Title of the section, and preserve in the section all the | |
| 252 | +substance and tone of each of the contributor acknowledgements and/or | |
| 253 | +dedications given therein. | |
| 254 | + | |
| 255 | +@item | |
| 256 | +Preserve all the Invariant Sections of the Document, | |
| 257 | +unaltered in their text and in their titles. Section numbers | |
| 258 | +or the equivalent are not considered part of the section titles. | |
| 259 | + | |
| 260 | +@item | |
| 261 | +Delete any section Entitled ``Endorsements''. Such a section | |
| 262 | +may not be included in the Modified Version. | |
| 263 | + | |
| 264 | +@item | |
| 265 | +Do not retitle any existing section to be Entitled ``Endorsements'' or | |
| 266 | +to conflict in title with any Invariant Section. | |
| 267 | + | |
| 268 | +@item | |
| 269 | +Preserve any Warranty Disclaimers. | |
| 270 | +@end enumerate | |
| 271 | + | |
| 272 | +If the Modified Version includes new front-matter sections or | |
| 273 | +appendices that qualify as Secondary Sections and contain no material | |
| 274 | +copied from the Document, you may at your option designate some or all | |
| 275 | +of these sections as invariant. To do this, add their titles to the | |
| 276 | +list of Invariant Sections in the Modified Version's license notice. | |
| 277 | +These titles must be distinct from any other section titles. | |
| 278 | + | |
| 279 | +You may add a section Entitled ``Endorsements'', provided it contains | |
| 280 | +nothing but endorsements of your Modified Version by various | |
| 281 | +parties---for example, statements of peer review or that the text has | |
| 282 | +been approved by an organization as the authoritative definition of a | |
| 283 | +standard. | |
| 284 | + | |
| 285 | +You may add a passage of up to five words as a Front-Cover Text, and a | |
| 286 | +passage of up to 25 words as a Back-Cover Text, to the end of the list | |
| 287 | +of Cover Texts in the Modified Version. Only one passage of | |
| 288 | +Front-Cover Text and one of Back-Cover Text may be added by (or | |
| 289 | +through arrangements made by) any one entity. If the Document already | |
| 290 | +includes a cover text for the same cover, previously added by you or | |
| 291 | +by arrangement made by the same entity you are acting on behalf of, | |
| 292 | +you may not add another; but you may replace the old one, on explicit | |
| 293 | +permission from the previous publisher that added the old one. | |
| 294 | + | |
| 295 | +The author(s) and publisher(s) of the Document do not by this License | |
| 296 | +give permission to use their names for publicity for or to assert or | |
| 297 | +imply endorsement of any Modified Version. | |
| 298 | + | |
| 299 | +@item | |
| 300 | +COMBINING DOCUMENTS | |
| 301 | + | |
| 302 | +You may combine the Document with other documents released under this | |
| 303 | +License, under the terms defined in section 4 above for modified | |
| 304 | +versions, provided that you include in the combination all of the | |
| 305 | +Invariant Sections of all of the original documents, unmodified, and | |
| 306 | +list them all as Invariant Sections of your combined work in its | |
| 307 | +license notice, and that you preserve all their Warranty Disclaimers. | |
| 308 | + | |
| 309 | +The combined work need only contain one copy of this License, and | |
| 310 | +multiple identical Invariant Sections may be replaced with a single | |
| 311 | +copy. If there are multiple Invariant Sections with the same name but | |
| 312 | +different contents, make the title of each such section unique by | |
| 313 | +adding at the end of it, in parentheses, the name of the original | |
| 314 | +author or publisher of that section if known, or else a unique number. | |
| 315 | +Make the same adjustment to the section titles in the list of | |
| 316 | +Invariant Sections in the license notice of the combined work. | |
| 317 | + | |
| 318 | +In the combination, you must combine any sections Entitled ``History'' | |
| 319 | +in the various original documents, forming one section Entitled | |
| 320 | +``History''; likewise combine any sections Entitled ``Acknowledgements'', | |
| 321 | +and any sections Entitled ``Dedications''. You must delete all | |
| 322 | +sections Entitled ``Endorsements.'' | |
| 323 | + | |
| 324 | +@item | |
| 325 | +COLLECTIONS OF DOCUMENTS | |
| 326 | + | |
| 327 | +You may make a collection consisting of the Document and other documents | |
| 328 | +released under this License, and replace the individual copies of this | |
| 329 | +License in the various documents with a single copy that is included in | |
| 330 | +the collection, provided that you follow the rules of this License for | |
| 331 | +verbatim copying of each of the documents in all other respects. | |
| 332 | + | |
| 333 | +You may extract a single document from such a collection, and distribute | |
| 334 | +it individually under this License, provided you insert a copy of this | |
| 335 | +License into the extracted document, and follow this License in all | |
| 336 | +other respects regarding verbatim copying of that document. | |
| 337 | + | |
| 338 | +@item | |
| 339 | +AGGREGATION WITH INDEPENDENT WORKS | |
| 340 | + | |
| 341 | +A compilation of the Document or its derivatives with other separate | |
| 342 | +and independent documents or works, in or on a volume of a storage or | |
| 343 | +distribution medium, is called an ``aggregate'' if the copyright | |
| 344 | +resulting from the compilation is not used to limit the legal rights | |
| 345 | +of the compilation's users beyond what the individual works permit. | |
| 346 | +When the Document is included in an aggregate, this License does not | |
| 347 | +apply to the other works in the aggregate which are not themselves | |
| 348 | +derivative works of the Document. | |
| 349 | + | |
| 350 | +If the Cover Text requirement of section 3 is applicable to these | |
| 351 | +copies of the Document, then if the Document is less than one half of | |
| 352 | +the entire aggregate, the Document's Cover Texts may be placed on | |
| 353 | +covers that bracket the Document within the aggregate, or the | |
| 354 | +electronic equivalent of covers if the Document is in electronic form. | |
| 355 | +Otherwise they must appear on printed covers that bracket the whole | |
| 356 | +aggregate. | |
| 357 | + | |
| 358 | +@item | |
| 359 | +TRANSLATION | |
| 360 | + | |
| 361 | +Translation is considered a kind of modification, so you may | |
| 362 | +distribute translations of the Document under the terms of section 4. | |
| 363 | +Replacing Invariant Sections with translations requires special | |
| 364 | +permission from their copyright holders, but you may include | |
| 365 | +translations of some or all Invariant Sections in addition to the | |
| 366 | +original versions of these Invariant Sections. You may include a | |
| 367 | +translation of this License, and all the license notices in the | |
| 368 | +Document, and any Warranty Disclaimers, provided that you also include | |
| 369 | +the original English version of this License and the original versions | |
| 370 | +of those notices and disclaimers. In case of a disagreement between | |
| 371 | +the translation and the original version of this License or a notice | |
| 372 | +or disclaimer, the original version will prevail. | |
| 373 | + | |
| 374 | +If a section in the Document is Entitled ``Acknowledgements'', | |
| 375 | +``Dedications'', or ``History'', the requirement (section 4) to Preserve | |
| 376 | +its Title (section 1) will typically require changing the actual | |
| 377 | +title. | |
| 378 | + | |
| 379 | +@item | |
| 380 | +TERMINATION | |
| 381 | + | |
| 382 | +You may not copy, modify, sublicense, or distribute the Document except | |
| 383 | +as expressly provided for under this License. Any other attempt to | |
| 384 | +copy, modify, sublicense or distribute the Document is void, and will | |
| 385 | +automatically terminate your rights under this License. However, | |
| 386 | +parties who have received copies, or rights, from you under this | |
| 387 | +License will not have their licenses terminated so long as such | |
| 388 | +parties remain in full compliance. | |
| 389 | + | |
| 390 | +@item | |
| 391 | +FUTURE REVISIONS OF THIS LICENSE | |
| 392 | + | |
| 393 | +The Free Software Foundation may publish new, revised versions | |
| 394 | +of the GNU Free Documentation License from time to time. Such new | |
| 395 | +versions will be similar in spirit to the present version, but may | |
| 396 | +differ in detail to address new problems or concerns. See | |
| 397 | +@uref{http://www.gnu.org/copyleft/}. | |
| 398 | + | |
| 399 | +Each version of the License is given a distinguishing version number. | |
| 400 | +If the Document specifies that a particular numbered version of this | |
| 401 | +License ``or any later version'' applies to it, you have the option of | |
| 402 | +following the terms and conditions either of that specified version or | |
| 403 | +of any later version that has been published (not as a draft) by the | |
| 404 | +Free Software Foundation. If the Document does not specify a version | |
| 405 | +number of this License, you may choose any version ever published (not | |
| 406 | +as a draft) by the Free Software Foundation. | |
| 407 | +@end enumerate | |
| 408 | + | |
| 409 | +@page | |
| 410 | +@heading ADDENDUM: How to use this License for your documents | |
| 411 | + | |
| 412 | +To use this License in a document you have written, include a copy of | |
| 413 | +the License in the document and put the following copyright and | |
| 414 | +license notices just after the title page: | |
| 415 | + | |
| 416 | +@smallexample | |
| 417 | +@group | |
| 418 | + Copyright (C) @var{year} @var{your name}. | |
| 419 | + Permission is granted to copy, distribute and/or modify this document | |
| 420 | + under the terms of the GNU Free Documentation License, Version 1.2 | |
| 421 | + or any later version published by the Free Software Foundation; | |
| 422 | + with no Invariant Sections, no Front-Cover Texts, and no Back-Cover | |
| 423 | + Texts. A copy of the license is included in the section entitled ``GNU | |
| 424 | + Free Documentation License''. | |
| 425 | +@end group | |
| 426 | +@end smallexample | |
| 427 | + | |
| 428 | +If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, | |
| 429 | +replace the ``with@dots{}Texts.'' line with this: | |
| 430 | + | |
| 431 | +@smallexample | |
| 432 | +@group | |
| 433 | + with the Invariant Sections being @var{list their titles}, with | |
| 434 | + the Front-Cover Texts being @var{list}, and with the Back-Cover Texts | |
| 435 | + being @var{list}. | |
| 436 | +@end group | |
| 437 | +@end smallexample | |
| 438 | + | |
| 439 | +If you have Invariant Sections without Cover Texts, or some other | |
| 440 | +combination of the three, merge those two alternatives to suit the | |
| 441 | +situation. | |
| 442 | + | |
| 443 | +If your document contains nontrivial examples of program code, we | |
| 444 | +recommend releasing these examples in parallel under your choice of | |
| 445 | +free software license, such as the GNU General Public License, | |
| 446 | +to permit their use in free software. | |
| 447 | + | |
| 448 | +@c Local Variables: | |
| 449 | +@c ispell-local-pdict: "ispell-dict" | |
| 450 | +@c End: | |
| 451 | + |
| @@ -0,0 +1,717 @@ | ||
| 1 | +@c The GNU General Public License. | |
| 2 | +@center Version 3, 29 June 2007 | |
| 3 | + | |
| 4 | +@c This file is intended to be included within another document, | |
| 5 | +@c hence no sectioning command or @node. | |
| 6 | + | |
| 7 | +@display | |
| 8 | +Copyright @copyright{} 2007 Free Software Foundation, Inc. @url{http://fsf.org/} | |
| 9 | + | |
| 10 | +Everyone is permitted to copy and distribute verbatim copies of this | |
| 11 | +license document, but changing it is not allowed. | |
| 12 | +@end display | |
| 13 | + | |
| 14 | +@heading Preamble | |
| 15 | + | |
| 16 | +The GNU General Public License is a free, copyleft license for | |
| 17 | +software and other kinds of works. | |
| 18 | + | |
| 19 | +The licenses for most software and other practical works are designed | |
| 20 | +to take away your freedom to share and change the works. By contrast, | |
| 21 | +the GNU General Public License is intended to guarantee your freedom | |
| 22 | +to share and change all versions of a program---to make sure it remains | |
| 23 | +free software for all its users. We, the Free Software Foundation, | |
| 24 | +use the GNU General Public License for most of our software; it | |
| 25 | +applies also to any other work released this way by its authors. You | |
| 26 | +can apply it to your programs, too. | |
| 27 | + | |
| 28 | +When we speak of free software, we are referring to freedom, not | |
| 29 | +price. Our General Public Licenses are designed to make sure that you | |
| 30 | +have the freedom to distribute copies of free software (and charge for | |
| 31 | +them if you wish), that you receive source code or can get it if you | |
| 32 | +want it, that you can change the software or use pieces of it in new | |
| 33 | +free programs, and that you know you can do these things. | |
| 34 | + | |
| 35 | +To protect your rights, we need to prevent others from denying you | |
| 36 | +these rights or asking you to surrender the rights. Therefore, you | |
| 37 | +have certain responsibilities if you distribute copies of the | |
| 38 | +software, or if you modify it: responsibilities to respect the freedom | |
| 39 | +of others. | |
| 40 | + | |
| 41 | +For example, if you distribute copies of such a program, whether | |
| 42 | +gratis or for a fee, you must pass on to the recipients the same | |
| 43 | +freedoms that you received. You must make sure that they, too, | |
| 44 | +receive or can get the source code. And you must show them these | |
| 45 | +terms so they know their rights. | |
| 46 | + | |
| 47 | +Developers that use the GNU GPL protect your rights with two steps: | |
| 48 | +(1) assert copyright on the software, and (2) offer you this License | |
| 49 | +giving you legal permission to copy, distribute and/or modify it. | |
| 50 | + | |
| 51 | +For the developers' and authors' protection, the GPL clearly explains | |
| 52 | +that there is no warranty for this free software. For both users' and | |
| 53 | +authors' sake, the GPL requires that modified versions be marked as | |
| 54 | +changed, so that their problems will not be attributed erroneously to | |
| 55 | +authors of previous versions. | |
| 56 | + | |
| 57 | +Some devices are designed to deny users access to install or run | |
| 58 | +modified versions of the software inside them, although the | |
| 59 | +manufacturer can do so. This is fundamentally incompatible with the | |
| 60 | +aim of protecting users' freedom to change the software. The | |
| 61 | +systematic pattern of such abuse occurs in the area of products for | |
| 62 | +individuals to use, which is precisely where it is most unacceptable. | |
| 63 | +Therefore, we have designed this version of the GPL to prohibit the | |
| 64 | +practice for those products. If such problems arise substantially in | |
| 65 | +other domains, we stand ready to extend this provision to those | |
| 66 | +domains in future versions of the GPL, as needed to protect the | |
| 67 | +freedom of users. | |
| 68 | + | |
| 69 | +Finally, every program is threatened constantly by software patents. | |
| 70 | +States should not allow patents to restrict development and use of | |
| 71 | +software on general-purpose computers, but in those that do, we wish | |
| 72 | +to avoid the special danger that patents applied to a free program | |
| 73 | +could make it effectively proprietary. To prevent this, the GPL | |
| 74 | +assures that patents cannot be used to render the program non-free. | |
| 75 | + | |
| 76 | +The precise terms and conditions for copying, distribution and | |
| 77 | +modification follow. | |
| 78 | + | |
| 79 | +@heading TERMS AND CONDITIONS | |
| 80 | + | |
| 81 | +@enumerate 0 | |
| 82 | +@item Definitions. | |
| 83 | + | |
| 84 | +``This License'' refers to version 3 of the GNU General Public License. | |
| 85 | + | |
| 86 | +``Copyright'' also means copyright-like laws that apply to other kinds | |
| 87 | +of works, such as semiconductor masks. | |
| 88 | + | |
| 89 | +``The Program'' refers to any copyrightable work licensed under this | |
| 90 | +License. Each licensee is addressed as ``you''. ``Licensees'' and | |
| 91 | +``recipients'' may be individuals or organizations. | |
| 92 | + | |
| 93 | +To ``modify'' a work means to copy from or adapt all or part of the work | |
| 94 | +in a fashion requiring copyright permission, other than the making of | |
| 95 | +an exact copy. The resulting work is called a ``modified version'' of | |
| 96 | +the earlier work or a work ``based on'' the earlier work. | |
| 97 | + | |
| 98 | +A ``covered work'' means either the unmodified Program or a work based | |
| 99 | +on the Program. | |
| 100 | + | |
| 101 | +To ``propagate'' a work means to do anything with it that, without | |
| 102 | +permission, would make you directly or secondarily liable for | |
| 103 | +infringement under applicable copyright law, except executing it on a | |
| 104 | +computer or modifying a private copy. Propagation includes copying, | |
| 105 | +distribution (with or without modification), making available to the | |
| 106 | +public, and in some countries other activities as well. | |
| 107 | + | |
| 108 | +To ``convey'' a work means any kind of propagation that enables other | |
| 109 | +parties to make or receive copies. Mere interaction with a user | |
| 110 | +through a computer network, with no transfer of a copy, is not | |
| 111 | +conveying. | |
| 112 | + | |
| 113 | +An interactive user interface displays ``Appropriate Legal Notices'' to | |
| 114 | +the extent that it includes a convenient and prominently visible | |
| 115 | +feature that (1) displays an appropriate copyright notice, and (2) | |
| 116 | +tells the user that there is no warranty for the work (except to the | |
| 117 | +extent that warranties are provided), that licensees may convey the | |
| 118 | +work under this License, and how to view a copy of this License. If | |
| 119 | +the interface presents a list of user commands or options, such as a | |
| 120 | +menu, a prominent item in the list meets this criterion. | |
| 121 | + | |
| 122 | +@item Source Code. | |
| 123 | + | |
| 124 | +The ``source code'' for a work means the preferred form of the work for | |
| 125 | +making modifications to it. ``Object code'' means any non-source form | |
| 126 | +of a work. | |
| 127 | + | |
| 128 | +A ``Standard Interface'' means an interface that either is an official | |
| 129 | +standard defined by a recognized standards body, or, in the case of | |
| 130 | +interfaces specified for a particular programming language, one that | |
| 131 | +is widely used among developers working in that language. | |
| 132 | + | |
| 133 | +The ``System Libraries'' of an executable work include anything, other | |
| 134 | +than the work as a whole, that (a) is included in the normal form of | |
| 135 | +packaging a Major Component, but which is not part of that Major | |
| 136 | +Component, and (b) serves only to enable use of the work with that | |
| 137 | +Major Component, or to implement a Standard Interface for which an | |
| 138 | +implementation is available to the public in source code form. A | |
| 139 | +``Major Component'', in this context, means a major essential component | |
| 140 | +(kernel, window system, and so on) of the specific operating system | |
| 141 | +(if any) on which the executable work runs, or a compiler used to | |
| 142 | +produce the work, or an object code interpreter used to run it. | |
| 143 | + | |
| 144 | +The ``Corresponding Source'' for a work in object code form means all | |
| 145 | +the source code needed to generate, install, and (for an executable | |
| 146 | +work) run the object code and to modify the work, including scripts to | |
| 147 | +control those activities. However, it does not include the work's | |
| 148 | +System Libraries, or general-purpose tools or generally available free | |
| 149 | +programs which are used unmodified in performing those activities but | |
| 150 | +which are not part of the work. For example, Corresponding Source | |
| 151 | +includes interface definition files associated with source files for | |
| 152 | +the work, and the source code for shared libraries and dynamically | |
| 153 | +linked subprograms that the work is specifically designed to require, | |
| 154 | +such as by intimate data communication or control flow between those | |
| 155 | +subprograms and other parts of the work. | |
| 156 | + | |
| 157 | +The Corresponding Source need not include anything that users can | |
| 158 | +regenerate automatically from other parts of the Corresponding Source. | |
| 159 | + | |
| 160 | +The Corresponding Source for a work in source code form is that same | |
| 161 | +work. | |
| 162 | + | |
| 163 | +@item Basic Permissions. | |
| 164 | + | |
| 165 | +All rights granted under this License are granted for the term of | |
| 166 | +copyright on the Program, and are irrevocable provided the stated | |
| 167 | +conditions are met. This License explicitly affirms your unlimited | |
| 168 | +permission to run the unmodified Program. The output from running a | |
| 169 | +covered work is covered by this License only if the output, given its | |
| 170 | +content, constitutes a covered work. This License acknowledges your | |
| 171 | +rights of fair use or other equivalent, as provided by copyright law. | |
| 172 | + | |
| 173 | +You may make, run and propagate covered works that you do not convey, | |
| 174 | +without conditions so long as your license otherwise remains in force. | |
| 175 | +You may convey covered works to others for the sole purpose of having | |
| 176 | +them make modifications exclusively for you, or provide you with | |
| 177 | +facilities for running those works, provided that you comply with the | |
| 178 | +terms of this License in conveying all material for which you do not | |
| 179 | +control copyright. Those thus making or running the covered works for | |
| 180 | +you must do so exclusively on your behalf, under your direction and | |
| 181 | +control, on terms that prohibit them from making any copies of your | |
| 182 | +copyrighted material outside their relationship with you. | |
| 183 | + | |
| 184 | +Conveying under any other circumstances is permitted solely under the | |
| 185 | +conditions stated below. Sublicensing is not allowed; section 10 | |
| 186 | +makes it unnecessary. | |
| 187 | + | |
| 188 | +@item Protecting Users' Legal Rights From Anti-Circumvention Law. | |
| 189 | + | |
| 190 | +No covered work shall be deemed part of an effective technological | |
| 191 | +measure under any applicable law fulfilling obligations under article | |
| 192 | +11 of the WIPO copyright treaty adopted on 20 December 1996, or | |
| 193 | +similar laws prohibiting or restricting circumvention of such | |
| 194 | +measures. | |
| 195 | + | |
| 196 | +When you convey a covered work, you waive any legal power to forbid | |
| 197 | +circumvention of technological measures to the extent such | |
| 198 | +circumvention is effected by exercising rights under this License with | |
| 199 | +respect to the covered work, and you disclaim any intention to limit | |
| 200 | +operation or modification of the work as a means of enforcing, against | |
| 201 | +the work's users, your or third parties' legal rights to forbid | |
| 202 | +circumvention of technological measures. | |
| 203 | + | |
| 204 | +@item Conveying Verbatim Copies. | |
| 205 | + | |
| 206 | +You may convey verbatim copies of the Program's source code as you | |
| 207 | +receive it, in any medium, provided that you conspicuously and | |
| 208 | +appropriately publish on each copy an appropriate copyright notice; | |
| 209 | +keep intact all notices stating that this License and any | |
| 210 | +non-permissive terms added in accord with section 7 apply to the code; | |
| 211 | +keep intact all notices of the absence of any warranty; and give all | |
| 212 | +recipients a copy of this License along with the Program. | |
| 213 | + | |
| 214 | +You may charge any price or no price for each copy that you convey, | |
| 215 | +and you may offer support or warranty protection for a fee. | |
| 216 | + | |
| 217 | +@item Conveying Modified Source Versions. | |
| 218 | + | |
| 219 | +You may convey a work based on the Program, or the modifications to | |
| 220 | +produce it from the Program, in the form of source code under the | |
| 221 | +terms of section 4, provided that you also meet all of these | |
| 222 | +conditions: | |
| 223 | + | |
| 224 | +@enumerate a | |
| 225 | +@item | |
| 226 | +The work must carry prominent notices stating that you modified it, | |
| 227 | +and giving a relevant date. | |
| 228 | + | |
| 229 | +@item | |
| 230 | +The work must carry prominent notices stating that it is released | |
| 231 | +under this License and any conditions added under section 7. This | |
| 232 | +requirement modifies the requirement in section 4 to ``keep intact all | |
| 233 | +notices''. | |
| 234 | + | |
| 235 | +@item | |
| 236 | +You must license the entire work, as a whole, under this License to | |
| 237 | +anyone who comes into possession of a copy. This License will | |
| 238 | +therefore apply, along with any applicable section 7 additional terms, | |
| 239 | +to the whole of the work, and all its parts, regardless of how they | |
| 240 | +are packaged. This License gives no permission to license the work in | |
| 241 | +any other way, but it does not invalidate such permission if you have | |
| 242 | +separately received it. | |
| 243 | + | |
| 244 | +@item | |
| 245 | +If the work has interactive user interfaces, each must display | |
| 246 | +Appropriate Legal Notices; however, if the Program has interactive | |
| 247 | +interfaces that do not display Appropriate Legal Notices, your work | |
| 248 | +need not make them do so. | |
| 249 | +@end enumerate | |
| 250 | + | |
| 251 | +A compilation of a covered work with other separate and independent | |
| 252 | +works, which are not by their nature extensions of the covered work, | |
| 253 | +and which are not combined with it such as to form a larger program, | |
| 254 | +in or on a volume of a storage or distribution medium, is called an | |
| 255 | +``aggregate'' if the compilation and its resulting copyright are not | |
| 256 | +used to limit the access or legal rights of the compilation's users | |
| 257 | +beyond what the individual works permit. Inclusion of a covered work | |
| 258 | +in an aggregate does not cause this License to apply to the other | |
| 259 | +parts of the aggregate. | |
| 260 | + | |
| 261 | +@item Conveying Non-Source Forms. | |
| 262 | + | |
| 263 | +You may convey a covered work in object code form under the terms of | |
| 264 | +sections 4 and 5, provided that you also convey the machine-readable | |
| 265 | +Corresponding Source under the terms of this License, in one of these | |
| 266 | +ways: | |
| 267 | + | |
| 268 | +@enumerate a | |
| 269 | +@item | |
| 270 | +Convey the object code in, or embodied in, a physical product | |
| 271 | +(including a physical distribution medium), accompanied by the | |
| 272 | +Corresponding Source fixed on a durable physical medium customarily | |
| 273 | +used for software interchange. | |
| 274 | + | |
| 275 | +@item | |
| 276 | +Convey the object code in, or embodied in, a physical product | |
| 277 | +(including a physical distribution medium), accompanied by a written | |
| 278 | +offer, valid for at least three years and valid for as long as you | |
| 279 | +offer spare parts or customer support for that product model, to give | |
| 280 | +anyone who possesses the object code either (1) a copy of the | |
| 281 | +Corresponding Source for all the software in the product that is | |
| 282 | +covered by this License, on a durable physical medium customarily used | |
| 283 | +for software interchange, for a price no more than your reasonable | |
| 284 | +cost of physically performing this conveying of source, or (2) access | |
| 285 | +to copy the Corresponding Source from a network server at no charge. | |
| 286 | + | |
| 287 | +@item | |
| 288 | +Convey individual copies of the object code with a copy of the written | |
| 289 | +offer to provide the Corresponding Source. This alternative is | |
| 290 | +allowed only occasionally and noncommercially, and only if you | |
| 291 | +received the object code with such an offer, in accord with subsection | |
| 292 | +6b. | |
| 293 | + | |
| 294 | +@item | |
| 295 | +Convey the object code by offering access from a designated place | |
| 296 | +(gratis or for a charge), and offer equivalent access to the | |
| 297 | +Corresponding Source in the same way through the same place at no | |
| 298 | +further charge. You need not require recipients to copy the | |
| 299 | +Corresponding Source along with the object code. If the place to copy | |
| 300 | +the object code is a network server, the Corresponding Source may be | |
| 301 | +on a different server (operated by you or a third party) that supports | |
| 302 | +equivalent copying facilities, provided you maintain clear directions | |
| 303 | +next to the object code saying where to find the Corresponding Source. | |
| 304 | +Regardless of what server hosts the Corresponding Source, you remain | |
| 305 | +obligated to ensure that it is available for as long as needed to | |
| 306 | +satisfy these requirements. | |
| 307 | + | |
| 308 | +@item | |
| 309 | +Convey the object code using peer-to-peer transmission, provided you | |
| 310 | +inform other peers where the object code and Corresponding Source of | |
| 311 | +the work are being offered to the general public at no charge under | |
| 312 | +subsection 6d. | |
| 313 | + | |
| 314 | +@end enumerate | |
| 315 | + | |
| 316 | +A separable portion of the object code, whose source code is excluded | |
| 317 | +from the Corresponding Source as a System Library, need not be | |
| 318 | +included in conveying the object code work. | |
| 319 | + | |
| 320 | +A ``User Product'' is either (1) a ``consumer product'', which means any | |
| 321 | +tangible personal property which is normally used for personal, | |
| 322 | +family, or household purposes, or (2) anything designed or sold for | |
| 323 | +incorporation into a dwelling. In determining whether a product is a | |
| 324 | +consumer product, doubtful cases shall be resolved in favor of | |
| 325 | +coverage. For a particular product received by a particular user, | |
| 326 | +``normally used'' refers to a typical or common use of that class of | |
| 327 | +product, regardless of the status of the particular user or of the way | |
| 328 | +in which the particular user actually uses, or expects or is expected | |
| 329 | +to use, the product. A product is a consumer product regardless of | |
| 330 | +whether the product has substantial commercial, industrial or | |
| 331 | +non-consumer uses, unless such uses represent the only significant | |
| 332 | +mode of use of the product. | |
| 333 | + | |
| 334 | +``Installation Information'' for a User Product means any methods, | |
| 335 | +procedures, authorization keys, or other information required to | |
| 336 | +install and execute modified versions of a covered work in that User | |
| 337 | +Product from a modified version of its Corresponding Source. The | |
| 338 | +information must suffice to ensure that the continued functioning of | |
| 339 | +the modified object code is in no case prevented or interfered with | |
| 340 | +solely because modification has been made. | |
| 341 | + | |
| 342 | +If you convey an object code work under this section in, or with, or | |
| 343 | +specifically for use in, a User Product, and the conveying occurs as | |
| 344 | +part of a transaction in which the right of possession and use of the | |
| 345 | +User Product is transferred to the recipient in perpetuity or for a | |
| 346 | +fixed term (regardless of how the transaction is characterized), the | |
| 347 | +Corresponding Source conveyed under this section must be accompanied | |
| 348 | +by the Installation Information. But this requirement does not apply | |
| 349 | +if neither you nor any third party retains the ability to install | |
| 350 | +modified object code on the User Product (for example, the work has | |
| 351 | +been installed in ROM). | |
| 352 | + | |
| 353 | +The requirement to provide Installation Information does not include a | |
| 354 | +requirement to continue to provide support service, warranty, or | |
| 355 | +updates for a work that has been modified or installed by the | |
| 356 | +recipient, or for the User Product in which it has been modified or | |
| 357 | +installed. Access to a network may be denied when the modification | |
| 358 | +itself materially and adversely affects the operation of the network | |
| 359 | +or violates the rules and protocols for communication across the | |
| 360 | +network. | |
| 361 | + | |
| 362 | +Corresponding Source conveyed, and Installation Information provided, | |
| 363 | +in accord with this section must be in a format that is publicly | |
| 364 | +documented (and with an implementation available to the public in | |
| 365 | +source code form), and must require no special password or key for | |
| 366 | +unpacking, reading or copying. | |
| 367 | + | |
| 368 | +@item Additional Terms. | |
| 369 | + | |
| 370 | +``Additional permissions'' are terms that supplement the terms of this | |
| 371 | +License by making exceptions from one or more of its conditions. | |
| 372 | +Additional permissions that are applicable to the entire Program shall | |
| 373 | +be treated as though they were included in this License, to the extent | |
| 374 | +that they are valid under applicable law. If additional permissions | |
| 375 | +apply only to part of the Program, that part may be used separately | |
| 376 | +under those permissions, but the entire Program remains governed by | |
| 377 | +this License without regard to the additional permissions. | |
| 378 | + | |
| 379 | +When you convey a copy of a covered work, you may at your option | |
| 380 | +remove any additional permissions from that copy, or from any part of | |
| 381 | +it. (Additional permissions may be written to require their own | |
| 382 | +removal in certain cases when you modify the work.) You may place | |
| 383 | +additional permissions on material, added by you to a covered work, | |
| 384 | +for which you have or can give appropriate copyright permission. | |
| 385 | + | |
| 386 | +Notwithstanding any other provision of this License, for material you | |
| 387 | +add to a covered work, you may (if authorized by the copyright holders | |
| 388 | +of that material) supplement the terms of this License with terms: | |
| 389 | + | |
| 390 | +@enumerate a | |
| 391 | +@item | |
| 392 | +Disclaiming warranty or limiting liability differently from the terms | |
| 393 | +of sections 15 and 16 of this License; or | |
| 394 | + | |
| 395 | +@item | |
| 396 | +Requiring preservation of specified reasonable legal notices or author | |
| 397 | +attributions in that material or in the Appropriate Legal Notices | |
| 398 | +displayed by works containing it; or | |
| 399 | + | |
| 400 | +@item | |
| 401 | +Prohibiting misrepresentation of the origin of that material, or | |
| 402 | +requiring that modified versions of such material be marked in | |
| 403 | +reasonable ways as different from the original version; or | |
| 404 | + | |
| 405 | +@item | |
| 406 | +Limiting the use for publicity purposes of names of licensors or | |
| 407 | +authors of the material; or | |
| 408 | + | |
| 409 | +@item | |
| 410 | +Declining to grant rights under trademark law for use of some trade | |
| 411 | +names, trademarks, or service marks; or | |
| 412 | + | |
| 413 | +@item | |
| 414 | +Requiring indemnification of licensors and authors of that material by | |
| 415 | +anyone who conveys the material (or modified versions of it) with | |
| 416 | +contractual assumptions of liability to the recipient, for any | |
| 417 | +liability that these contractual assumptions directly impose on those | |
| 418 | +licensors and authors. | |
| 419 | +@end enumerate | |
| 420 | + | |
| 421 | +All other non-permissive additional terms are considered ``further | |
| 422 | +restrictions'' within the meaning of section 10. If the Program as you | |
| 423 | +received it, or any part of it, contains a notice stating that it is | |
| 424 | +governed by this License along with a term that is a further | |
| 425 | +restriction, you may remove that term. If a license document contains | |
| 426 | +a further restriction but permits relicensing or conveying under this | |
| 427 | +License, you may add to a covered work material governed by the terms | |
| 428 | +of that license document, provided that the further restriction does | |
| 429 | +not survive such relicensing or conveying. | |
| 430 | + | |
| 431 | +If you add terms to a covered work in accord with this section, you | |
| 432 | +must place, in the relevant source files, a statement of the | |
| 433 | +additional terms that apply to those files, or a notice indicating | |
| 434 | +where to find the applicable terms. | |
| 435 | + | |
| 436 | +Additional terms, permissive or non-permissive, may be stated in the | |
| 437 | +form of a separately written license, or stated as exceptions; the | |
| 438 | +above requirements apply either way. | |
| 439 | + | |
| 440 | +@item Termination. | |
| 441 | + | |
| 442 | +You may not propagate or modify a covered work except as expressly | |
| 443 | +provided under this License. Any attempt otherwise to propagate or | |
| 444 | +modify it is void, and will automatically terminate your rights under | |
| 445 | +this License (including any patent licenses granted under the third | |
| 446 | +paragraph of section 11). | |
| 447 | + | |
| 448 | +However, if you cease all violation of this License, then your license | |
| 449 | +from a particular copyright holder is reinstated (a) provisionally, | |
| 450 | +unless and until the copyright holder explicitly and finally | |
| 451 | +terminates your license, and (b) permanently, if the copyright holder | |
| 452 | +fails to notify you of the violation by some reasonable means prior to | |
| 453 | +60 days after the cessation. | |
| 454 | + | |
| 455 | +Moreover, your license from a particular copyright holder is | |
| 456 | +reinstated permanently if the copyright holder notifies you of the | |
| 457 | +violation by some reasonable means, this is the first time you have | |
| 458 | +received notice of violation of this License (for any work) from that | |
| 459 | +copyright holder, and you cure the violation prior to 30 days after | |
| 460 | +your receipt of the notice. | |
| 461 | + | |
| 462 | +Termination of your rights under this section does not terminate the | |
| 463 | +licenses of parties who have received copies or rights from you under | |
| 464 | +this License. If your rights have been terminated and not permanently | |
| 465 | +reinstated, you do not qualify to receive new licenses for the same | |
| 466 | +material under section 10. | |
| 467 | + | |
| 468 | +@item Acceptance Not Required for Having Copies. | |
| 469 | + | |
| 470 | +You are not required to accept this License in order to receive or run | |
| 471 | +a copy of the Program. Ancillary propagation of a covered work | |
| 472 | +occurring solely as a consequence of using peer-to-peer transmission | |
| 473 | +to receive a copy likewise does not require acceptance. However, | |
| 474 | +nothing other than this License grants you permission to propagate or | |
| 475 | +modify any covered work. These actions infringe copyright if you do | |
| 476 | +not accept this License. Therefore, by modifying or propagating a | |
| 477 | +covered work, you indicate your acceptance of this License to do so. | |
| 478 | + | |
| 479 | +@item Automatic Licensing of Downstream Recipients. | |
| 480 | + | |
| 481 | +Each time you convey a covered work, the recipient automatically | |
| 482 | +receives a license from the original licensors, to run, modify and | |
| 483 | +propagate that work, subject to this License. You are not responsible | |
| 484 | +for enforcing compliance by third parties with this License. | |
| 485 | + | |
| 486 | +An ``entity transaction'' is a transaction transferring control of an | |
| 487 | +organization, or substantially all assets of one, or subdividing an | |
| 488 | +organization, or merging organizations. If propagation of a covered | |
| 489 | +work results from an entity transaction, each party to that | |
| 490 | +transaction who receives a copy of the work also receives whatever | |
| 491 | +licenses to the work the party's predecessor in interest had or could | |
| 492 | +give under the previous paragraph, plus a right to possession of the | |
| 493 | +Corresponding Source of the work from the predecessor in interest, if | |
| 494 | +the predecessor has it or can get it with reasonable efforts. | |
| 495 | + | |
| 496 | +You may not impose any further restrictions on the exercise of the | |
| 497 | +rights granted or affirmed under this License. For example, you may | |
| 498 | +not impose a license fee, royalty, or other charge for exercise of | |
| 499 | +rights granted under this License, and you may not initiate litigation | |
| 500 | +(including a cross-claim or counterclaim in a lawsuit) alleging that | |
| 501 | +any patent claim is infringed by making, using, selling, offering for | |
| 502 | +sale, or importing the Program or any portion of it. | |
| 503 | + | |
| 504 | +@item Patents. | |
| 505 | + | |
| 506 | +A ``contributor'' is a copyright holder who authorizes use under this | |
| 507 | +License of the Program or a work on which the Program is based. The | |
| 508 | +work thus licensed is called the contributor's ``contributor version''. | |
| 509 | + | |
| 510 | +A contributor's ``essential patent claims'' are all patent claims owned | |
| 511 | +or controlled by the contributor, whether already acquired or | |
| 512 | +hereafter acquired, that would be infringed by some manner, permitted | |
| 513 | +by this License, of making, using, or selling its contributor version, | |
| 514 | +but do not include claims that would be infringed only as a | |
| 515 | +consequence of further modification of the contributor version. For | |
| 516 | +purposes of this definition, ``control'' includes the right to grant | |
| 517 | +patent sublicenses in a manner consistent with the requirements of | |
| 518 | +this License. | |
| 519 | + | |
| 520 | +Each contributor grants you a non-exclusive, worldwide, royalty-free | |
| 521 | +patent license under the contributor's essential patent claims, to | |
| 522 | +make, use, sell, offer for sale, import and otherwise run, modify and | |
| 523 | +propagate the contents of its contributor version. | |
| 524 | + | |
| 525 | +In the following three paragraphs, a ``patent license'' is any express | |
| 526 | +agreement or commitment, however denominated, not to enforce a patent | |
| 527 | +(such as an express permission to practice a patent or covenant not to | |
| 528 | +sue for patent infringement). To ``grant'' such a patent license to a | |
| 529 | +party means to make such an agreement or commitment not to enforce a | |
| 530 | +patent against the party. | |
| 531 | + | |
| 532 | +If you convey a covered work, knowingly relying on a patent license, | |
| 533 | +and the Corresponding Source of the work is not available for anyone | |
| 534 | +to copy, free of charge and under the terms of this License, through a | |
| 535 | +publicly available network server or other readily accessible means, | |
| 536 | +then you must either (1) cause the Corresponding Source to be so | |
| 537 | +available, or (2) arrange to deprive yourself of the benefit of the | |
| 538 | +patent license for this particular work, or (3) arrange, in a manner | |
| 539 | +consistent with the requirements of this License, to extend the patent | |
| 540 | +license to downstream recipients. ``Knowingly relying'' means you have | |
| 541 | +actual knowledge that, but for the patent license, your conveying the | |
| 542 | +covered work in a country, or your recipient's use of the covered work | |
| 543 | +in a country, would infringe one or more identifiable patents in that | |
| 544 | +country that you have reason to believe are valid. | |
| 545 | + | |
| 546 | +If, pursuant to or in connection with a single transaction or | |
| 547 | +arrangement, you convey, or propagate by procuring conveyance of, a | |
| 548 | +covered work, and grant a patent license to some of the parties | |
| 549 | +receiving the covered work authorizing them to use, propagate, modify | |
| 550 | +or convey a specific copy of the covered work, then the patent license | |
| 551 | +you grant is automatically extended to all recipients of the covered | |
| 552 | +work and works based on it. | |
| 553 | + | |
| 554 | +A patent license is ``discriminatory'' if it does not include within the | |
| 555 | +scope of its coverage, prohibits the exercise of, or is conditioned on | |
| 556 | +the non-exercise of one or more of the rights that are specifically | |
| 557 | +granted under this License. You may not convey a covered work if you | |
| 558 | +are a party to an arrangement with a third party that is in the | |
| 559 | +business of distributing software, under which you make payment to the | |
| 560 | +third party based on the extent of your activity of conveying the | |
| 561 | +work, and under which the third party grants, to any of the parties | |
| 562 | +who would receive the covered work from you, a discriminatory patent | |
| 563 | +license (a) in connection with copies of the covered work conveyed by | |
| 564 | +you (or copies made from those copies), or (b) primarily for and in | |
| 565 | +connection with specific products or compilations that contain the | |
| 566 | +covered work, unless you entered into that arrangement, or that patent | |
| 567 | +license was granted, prior to 28 March 2007. | |
| 568 | + | |
| 569 | +Nothing in this License shall be construed as excluding or limiting | |
| 570 | +any implied license or other defenses to infringement that may | |
| 571 | +otherwise be available to you under applicable patent law. | |
| 572 | + | |
| 573 | +@item No Surrender of Others' Freedom. | |
| 574 | + | |
| 575 | +If conditions are imposed on you (whether by court order, agreement or | |
| 576 | +otherwise) that contradict the conditions of this License, they do not | |
| 577 | +excuse you from the conditions of this License. If you cannot convey | |
| 578 | +a covered work so as to satisfy simultaneously your obligations under | |
| 579 | +this License and any other pertinent obligations, then as a | |
| 580 | +consequence you may not convey it at all. For example, if you agree | |
| 581 | +to terms that obligate you to collect a royalty for further conveying | |
| 582 | +from those to whom you convey the Program, the only way you could | |
| 583 | +satisfy both those terms and this License would be to refrain entirely | |
| 584 | +from conveying the Program. | |
| 585 | + | |
| 586 | +@item Use with the GNU Affero General Public License. | |
| 587 | + | |
| 588 | +Notwithstanding any other provision of this License, you have | |
| 589 | +permission to link or combine any covered work with a work licensed | |
| 590 | +under version 3 of the GNU Affero General Public License into a single | |
| 591 | +combined work, and to convey the resulting work. The terms of this | |
| 592 | +License will continue to apply to the part which is the covered work, | |
| 593 | +but the special requirements of the GNU Affero General Public License, | |
| 594 | +section 13, concerning interaction through a network will apply to the | |
| 595 | +combination as such. | |
| 596 | + | |
| 597 | +@item Revised Versions of this License. | |
| 598 | + | |
| 599 | +The Free Software Foundation may publish revised and/or new versions | |
| 600 | +of the GNU General Public License from time to time. Such new | |
| 601 | +versions will be similar in spirit to the present version, but may | |
| 602 | +differ in detail to address new problems or concerns. | |
| 603 | + | |
| 604 | +Each version is given a distinguishing version number. If the Program | |
| 605 | +specifies that a certain numbered version of the GNU General Public | |
| 606 | +License ``or any later version'' applies to it, you have the option of | |
| 607 | +following the terms and conditions either of that numbered version or | |
| 608 | +of any later version published by the Free Software Foundation. If | |
| 609 | +the Program does not specify a version number of the GNU General | |
| 610 | +Public License, you may choose any version ever published by the Free | |
| 611 | +Software Foundation. | |
| 612 | + | |
| 613 | +If the Program specifies that a proxy can decide which future versions | |
| 614 | +of the GNU General Public License can be used, that proxy's public | |
| 615 | +statement of acceptance of a version permanently authorizes you to | |
| 616 | +choose that version for the Program. | |
| 617 | + | |
| 618 | +Later license versions may give you additional or different | |
| 619 | +permissions. However, no additional obligations are imposed on any | |
| 620 | +author or copyright holder as a result of your choosing to follow a | |
| 621 | +later version. | |
| 622 | + | |
| 623 | +@item Disclaimer of Warranty. | |
| 624 | + | |
| 625 | +THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY | |
| 626 | +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT | |
| 627 | +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM ``AS IS'' WITHOUT | |
| 628 | +WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT | |
| 629 | +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |
| 630 | +A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND | |
| 631 | +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE | |
| 632 | +DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR | |
| 633 | +CORRECTION. | |
| 634 | + | |
| 635 | +@item Limitation of Liability. | |
| 636 | + | |
| 637 | +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING | |
| 638 | +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR | |
| 639 | +CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, | |
| 640 | +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES | |
| 641 | +ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT | |
| 642 | +NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR | |
| 643 | +LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM | |
| 644 | +TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER | |
| 645 | +PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. | |
| 646 | + | |
| 647 | +@item Interpretation of Sections 15 and 16. | |
| 648 | + | |
| 649 | +If the disclaimer of warranty and limitation of liability provided | |
| 650 | +above cannot be given local legal effect according to their terms, | |
| 651 | +reviewing courts shall apply local law that most closely approximates | |
| 652 | +an absolute waiver of all civil liability in connection with the | |
| 653 | +Program, unless a warranty or assumption of liability accompanies a | |
| 654 | +copy of the Program in return for a fee. | |
| 655 | + | |
| 656 | +@end enumerate | |
| 657 | + | |
| 658 | +@heading END OF TERMS AND CONDITIONS | |
| 659 | + | |
| 660 | +@heading How to Apply These Terms to Your New Programs | |
| 661 | + | |
| 662 | +If you develop a new program, and you want it to be of the greatest | |
| 663 | +possible use to the public, the best way to achieve this is to make it | |
| 664 | +free software which everyone can redistribute and change under these | |
| 665 | +terms. | |
| 666 | + | |
| 667 | +To do so, attach the following notices to the program. It is safest | |
| 668 | +to attach them to the start of each source file to most effectively | |
| 669 | +state the exclusion of warranty; and each file should have at least | |
| 670 | +the ``copyright'' line and a pointer to where the full notice is found. | |
| 671 | + | |
| 672 | +@smallexample | |
| 673 | +@var{one line to give the program's name and a brief idea of what it does.} | |
| 674 | +Copyright (C) @var{year} @var{name of author} | |
| 675 | + | |
| 676 | +This program is free software: you can redistribute it and/or modify | |
| 677 | +it under the terms of the GNU General Public License as published by | |
| 678 | +the Free Software Foundation, either version 3 of the License, or (at | |
| 679 | +your option) any later version. | |
| 680 | + | |
| 681 | +This program is distributed in the hope that it will be useful, but | |
| 682 | +WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 683 | +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| 684 | +General Public License for more details. | |
| 685 | + | |
| 686 | +You should have received a copy of the GNU General Public License | |
| 687 | +along with this program. If not, see @url{http://www.gnu.org/licenses/}. | |
| 688 | +@end smallexample | |
| 689 | + | |
| 690 | +Also add information on how to contact you by electronic and paper mail. | |
| 691 | + | |
| 692 | +If the program does terminal interaction, make it output a short | |
| 693 | +notice like this when it starts in an interactive mode: | |
| 694 | + | |
| 695 | +@smallexample | |
| 696 | +@var{program} Copyright (C) @var{year} @var{name of author} | |
| 697 | +This program comes with ABSOLUTELY NO WARRANTY; for details type @samp{show w}. | |
| 698 | +This is free software, and you are welcome to redistribute it | |
| 699 | +under certain conditions; type @samp{show c} for details. | |
| 700 | +@end smallexample | |
| 701 | + | |
| 702 | +The hypothetical commands @samp{show w} and @samp{show c} should show | |
| 703 | +the appropriate parts of the General Public License. Of course, your | |
| 704 | +program's commands might be different; for a GUI interface, you would | |
| 705 | +use an ``about box''. | |
| 706 | + | |
| 707 | +You should also get your employer (if you work as a programmer) or school, | |
| 708 | +if any, to sign a ``copyright disclaimer'' for the program, if necessary. | |
| 709 | +For more information on this, and how to apply and follow the GNU GPL, see | |
| 710 | +@url{http://www.gnu.org/licenses/}. | |
| 711 | + | |
| 712 | +The GNU General Public License does not permit incorporating your | |
| 713 | +program into proprietary programs. If your program is a subroutine | |
| 714 | +library, you may consider it more useful to permit linking proprietary | |
| 715 | +applications with the library. If this is what you want to do, use | |
| 716 | +the GNU Lesser General Public License instead of this License. But | |
| 717 | +first, please read @url{http://www.gnu.org/philosophy/why-not-lgpl.html}. |
| @@ -1,8 +1,8 @@ | ||
| 1 | 1 | \input texinfo @c -*-texinfo-*- |
| 2 | 2 | @setfilename msmtp.info |
| 3 | 3 | @documentencoding utf-8 |
| 4 | -@set UPDATED July 3, 2010 | |
| 5 | -@set VERSION 1.4.21 | |
| 4 | +@set UPDATED January 17, 2011 | |
| 5 | +@set VERSION 1.4.23 | |
| 6 | 6 | @settitle msmtp @value{VERSION} 日本語訳 |
| 7 | 7 | |
| 8 | 8 | @c Define new indices: for options (op) and commands (cm) |
| @@ -14,13 +14,11 @@ | ||
| 14 | 14 | このマニュアルは msmtp バージョン @value{VERSION} 用に、 |
| 15 | 15 | @value{UPDATED} に更新されました。 |
| 16 | 16 | |
| 17 | -日本語訳は、2010年8月12日に更新しました。 | |
| 18 | - | |
| 19 | 17 | @itemize @bullet |
| 20 | 18 | @item |
| 21 | -Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Martin Lambers | |
| 19 | +Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Martin Lambers | |
| 22 | 20 | @item |
| 23 | -Copyright (C) 2008, 2010 KINUGAWA Akihito (Japanese Translation) | |
| 21 | +Copyright (C) 2008, 2010, 2011 KINUGAWA Akihito (Japanese Translation) | |
| 24 | 22 | @end itemize |
| 25 | 23 | |
| 26 | 24 | @quotation |
| @@ -215,11 +213,18 @@ SMTP 認証に使うあなたのユーザ名を設定します。 | ||
| 215 | 213 | SMTP 認証に使うあなたのパスワードを設定します。 |
| 216 | 214 | 引数が無い場合はパスワードを未設定にします。 |
| 217 | 215 | 認証は、@samp{auth} コマンドで有効にしなければなりません。 |
| 218 | -パスワードが設定されていなくて認証中にパスワードが必要になった場合は、msmtp は @code{~/.netrc} の中からパスワードを探します。 | |
| 216 | +パスワードが設定されていなくて認証中にパスワードが必要になった場合は、 | |
| 217 | +msmtp はパスワードを探します。 | |
| 218 | +まず、@samp{passwordeval}が設定されている場合、そのコマンドを評価します。 | |
| 219 | +@samp{passwordeval}が設定されていない場合、msmtpは@code{~/.netrc} の中からパスワードを探します。 | |
| 219 | 220 | それに失敗すると、@code{SYSCONFDIR/netrc}の中から探します(あなたのプラットフォームにおいて @code{SYSCONFDIR} が何であるかを知るには、@code{--version} を使ってください)。 |
| 220 | 221 | それに失敗すると、(利用できるのであれば) システム固有のキーリングからパスワード取得を試みます。 |
| 221 | 222 | それに失敗すると、制御中のターミナルがあれば、あなたがパスワードを入力するようにプロンプトを表示します。 |
| 222 | 223 | @xref{Authentication}. |
| 224 | +@anchor{passwordeval} | |
| 225 | +@item passwordeval [@var{eval}] | |
| 226 | +@cmindex passwordeval | |
| 227 | +SMTP 認証のためのパスワードを、@var{eval}を実行して得られた出力内容(標準出力)に設定します。 | |
| 223 | 228 | @anchor{ntlmdomain} |
| 224 | 229 | @item ntlmdomain [@var{ntlmdomain}] |
| 225 | 230 | @cmindex ntlmdomain |
| @@ -498,6 +503,10 @@ SMTP EHLO (または LMTP LHLO) コマンドの引数を設定します。@xref{ | ||
| 498 | 503 | @itemx --user=[@var{username}] |
| 499 | 504 | @opindex --user |
| 500 | 505 | 認証に使うユーザ名を設定したり解除したりします。@xref{user}. |
| 506 | +@anchor{--passwordeval} | |
| 507 | +@itemx --passwordeval=[@var{eval}] | |
| 508 | +@opindex --passwordeval | |
| 509 | +認証に使うパスワードを評価します。@xref{passwordeval}. | |
| 501 | 510 | @itemx --tls[=(on|off)] |
| 502 | 511 | @opindex --tls |
| 503 | 512 | TLS/SSL を有効にしたり無効にしたりします。@xref{tls}. |
| @@ -798,7 +807,10 @@ sendmail 8.12.11 は、TLS クライアント証明書が送信された後 EXTE | ||
| 798 | 807 | 認証に使うデータは @samp{user} と @samp{password} コマンドで設定できます。 |
| 799 | 808 | あるいは @samp{--user} オプションを使ってください。 |
| 800 | 809 | @ref{user}、@ref{password}、@ref{--user} を見てください。 |
| 801 | -もしパスワードが設定されていなくて、認証中にパスワードが必要となった場合には、msmtp は @code{~/.netrc} の中からパスワード取得を試みます。 | |
| 810 | +もしパスワードが設定されていなくて、認証中にパスワードが必要となった場合 | |
| 811 | +には、msmtp はパスワードを探します。 | |
| 812 | +まず、@samp{passwordeval} が設定されていれば、そのコマンドを評価します。 | |
| 813 | +@samp{passwordeval} が設定されていなければ、msmtp は @code{~/.netrc} の中からパスワード取得を試みます。 | |
| 802 | 814 | それに失敗すると、@code{SYSCONFDIR/netrc}の中からパスワードを探します(あなたのプラットフォームにおいて @code{SYSCONFDIR} が何であるかを知るには、@code{--version} を使ってください)。 |
| 803 | 815 | それに失敗すると、(利用できれば) システム固有のキーリングからパスワード取得を試みます。 |
| 804 | 816 | それにも失敗して、しかも制御ターミナルが利用できるのであれば、パスワードを入力するようにユーザに要求します。 |
| @@ -1037,7 +1049,7 @@ host mail.provider.example | ||
| 1037 | 1049 | from smithjoe@@provider.example |
| 1038 | 1050 | auth on |
| 1039 | 1051 | user 123 |
| 1040 | -password pwd | |
| 1052 | +passwordeval gpg -d ~/.msmtp.password.gpg | |
| 1041 | 1053 | |
| 1042 | 1054 | # デフォルトのアカウントを設定 |
| 1043 | 1055 | account default : provider |
| @@ -0,0 +1,1241 @@ | ||
| 1 | +\input texinfo @c -*-texinfo-*- | |
| 2 | +@setfilename msmtp.info | |
| 3 | +@set UPDATED January 17, 2011 | |
| 4 | +@set VERSION 1.4.23 | |
| 5 | +@settitle msmtp @value{VERSION} | |
| 6 | + | |
| 7 | +@c Define new indices: for options (op) and commands (cm) | |
| 8 | +@defcodeindex op | |
| 9 | +@defcodeindex cm | |
| 10 | + | |
| 11 | +@finalout | |
| 12 | +@copying | |
| 13 | +This manual was last updated @value{UPDATED} for version | |
| 14 | +@value{VERSION} of msmtp. | |
| 15 | + | |
| 16 | +Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Martin Lambers | |
| 17 | + | |
| 18 | +@quotation | |
| 19 | +Permission is granted to copy, distribute and/or modify this document | |
| 20 | +under the terms of the GNU Free Documentation License, Version 1.2 or | |
| 21 | +any later version published by the Free Software Foundation; with no | |
| 22 | +Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A | |
| 23 | +copy of the license is included in the section entitled ``GNU Free | |
| 24 | +Documentation License''. | |
| 25 | +@end quotation | |
| 26 | +@end copying | |
| 27 | + | |
| 28 | +@dircategory Individual utilities | |
| 29 | +@direntry | |
| 30 | +* msmtp: (msmtp). An SMTP client. | |
| 31 | +@end direntry | |
| 32 | + | |
| 33 | +@titlepage | |
| 34 | +@title msmtp | |
| 35 | +@subtitle Version @value{VERSION}, @value{UPDATED} | |
| 36 | +@author Martin Lambers (@email{marlam@@marlam.de}) | |
| 37 | +@page | |
| 38 | +@vskip 0pt plus 1filll | |
| 39 | +@insertcopying | |
| 40 | +@end titlepage | |
| 41 | + | |
| 42 | +@contents | |
| 43 | + | |
| 44 | +@ifnottex | |
| 45 | +@node Top | |
| 46 | +@top msmtp | |
| 47 | +@insertcopying | |
| 48 | +@end ifnottex | |
| 49 | + | |
| 50 | +@menu | |
| 51 | +* Introduction:: Basic concepts. | |
| 52 | +* Configuration files:: Configuration file commands. | |
| 53 | +* Invocation:: Command line options. | |
| 54 | +* Transport Layer Security:: How to use TLS/SSL. | |
| 55 | +* Authentication:: How to use authentication. | |
| 56 | +* Delivery Status Notifications:: How to use DSN. | |
| 57 | +* Sendmail mode:: How to send mail. | |
| 58 | +* Server information mode:: How to obtain information about | |
| 59 | + an SMTP server. | |
| 60 | +* Remote Message Queue Starting mode:: How to send RMQS requests. | |
| 61 | +* Examples:: Usage examples. | |
| 62 | +* Development:: About the development process. | |
| 63 | +* Copying Information:: How you can copy and share mpop. | |
| 64 | +@end menu | |
| 65 | + | |
| 66 | + | |
| 67 | +@node Introduction | |
| 68 | +@chapter Introduction | |
| 69 | + | |
| 70 | +msmtp is an SMTP client. | |
| 71 | + | |
| 72 | +In its default mode of operation, it reads a mail from standard input and sends | |
| 73 | +it to a predefined SMTP server that takes care of proper delivery. Command line | |
| 74 | +options and exit codes are compatible to sendmail. | |
| 75 | + | |
| 76 | +Supported SMTP features include: | |
| 77 | +@itemize | |
| 78 | +@item Authentication methods PLAIN, LOGIN, CRAM-MD5 and EXTERNAL | |
| 79 | +(and GSSAPI, SCRAM-SHA-1, DIGEST-MD5, and NTLM when compiled with GNU SASL | |
| 80 | +support) | |
| 81 | +@item TLS encrypted connections with the OpenSSL or GnuTLS libraries | |
| 82 | +(including server certificate verification and the possibility to send | |
| 83 | +a client certificate) | |
| 84 | +@item Support for Internationalized Domain Names (IDN) | |
| 85 | +@item DSN (Delivery Status Notification) support | |
| 86 | +@item PIPELINING support for increased transmission speed | |
| 87 | +@item RMQS (Remote Message Queue Starting) support (ETRN keyword) | |
| 88 | +@end itemize | |
| 89 | + | |
| 90 | +The best way to start is probably to have a look at the Examples section. | |
| 91 | +@xref{Examples}. | |
| 92 | + | |
| 93 | +In addition to sendmail mode, there are two other modes of operation: | |
| 94 | +@itemize | |
| 95 | +@item Server information mode. In this mode, msmtp prints as much information as | |
| 96 | +it can get about a given SMTP server (supported features, maximum | |
| 97 | +mail size, @dots{}). | |
| 98 | +@item Remote Message Queue Starting mode. In this mode, msmtp sends a Remote | |
| 99 | +Message Queue Starting request for a host, domain, or queue to a given SMTP | |
| 100 | +server. | |
| 101 | +@end itemize | |
| 102 | + | |
| 103 | +Normally, a system wide configuration file and/or a user configuration file | |
| 104 | +contain information about which SMTP server to use and how to use it, but | |
| 105 | +almost all settings can also be configured on the command line. | |
| 106 | + | |
| 107 | +The information about SMTP servers is organized in accounts. Each account | |
| 108 | +describes one SMTP server: host name, authentication settings, TLS settings, | |
| 109 | +and so on. Each configuration file can define multiple accounts. | |
| 110 | + | |
| 111 | + | |
| 112 | +@node Configuration files | |
| 113 | +@chapter Configuration files | |
| 114 | + | |
| 115 | +msmtp supports a system wide configuration file and a user configuration file. | |
| 116 | +Both are optional and need not exist. | |
| 117 | + | |
| 118 | +If it exists and is readable, a system wide configuration file | |
| 119 | +@code{SYSCONFDIR/msmtprc} will be loaded, where @code{SYSCONFDIR} depends on | |
| 120 | +your platform. The default is @code{/usr/local/etc}. | |
| 121 | +Use @code{--version} to find out which directory your version uses. | |
| 122 | + | |
| 123 | +If it exists and is readable, a user configuration file will be loaded | |
| 124 | +(@code{~/.msmtprc} by default). Accounts defined in the user configuration | |
| 125 | +file override accounts from the system configuration file. The user | |
| 126 | +configuration file must have no more permissions than user read/write. | |
| 127 | +Configuration data from either file can be changed by command line options. | |
| 128 | + | |
| 129 | +A configuration file is a simple text file. Empty lines and comment lines | |
| 130 | +(whose first non-blank character is '#') are ignored. Every other line must | |
| 131 | +contain a command and may contain an argument to that command. | |
| 132 | +The argument may be enclosed in double quotes ("). | |
| 133 | + | |
| 134 | +If the first character of a filename is the tilde (~), this tilde will be | |
| 135 | +replaced by @code{HOME}. If a command accepts the argument @samp{on}, it also | |
| 136 | +accepts an empty argument and treats that as if it was @samp{on}. | |
| 137 | + | |
| 138 | +Commands form groups. Each group starts with the @samp{account} command and | |
| 139 | +defines the settings for one SMTP server. | |
| 140 | + | |
| 141 | +@xref{Examples}. | |
| 142 | + | |
| 143 | +@section General commands | |
| 144 | + | |
| 145 | +@table @samp | |
| 146 | +@anchor{defaults} | |
| 147 | +@item defaults | |
| 148 | +@cmindex defaults | |
| 149 | +Set defaults. The following configuration commands will set default values for | |
| 150 | +all following account definitions in the current configuration file. | |
| 151 | +@anchor{account} | |
| 152 | +@item account @var{name} [: @var{account}[,@dots{}]] | |
| 153 | +@cmindex account | |
| 154 | +Start a new account definition with the given name. The current default values | |
| 155 | +are filled in (see @ref{defaults}).@* | |
| 156 | +If a colon and a list of previously defined accounts is given after the account | |
| 157 | +name, the new account, with the filled in default values, will inherit all | |
| 158 | +settings from the accounts in the list. | |
| 159 | +@anchor{host} | |
| 160 | +@item host @var{hostname} | |
| 161 | +@cmindex host | |
| 162 | +The SMTP server to send the mail to. | |
| 163 | +The argument may be a host name or a network address. | |
| 164 | +Every account definition must contain this command. | |
| 165 | +@anchor{port} | |
| 166 | +@item port @var{number} | |
| 167 | +@cmindex port | |
| 168 | +The port that the SMTP server listens on. | |
| 169 | +The default port will be acquired from your operating system's service database: | |
| 170 | +for SMTP, the service is "smtp" (default port 25), unless TLS | |
| 171 | +without STARTTLS is used, in which case it is "ssmtp" (465). For LMTP, it is | |
| 172 | +"lmtp". | |
| 173 | +@anchor{timeout} | |
| 174 | +@item timeout (off|@var{seconds}) | |
| 175 | +@cmindex timeout | |
| 176 | +Set or unset a network timeout, in seconds. The argument @samp{off} means that | |
| 177 | +no timeout will be set, which means that the operating system default will be | |
| 178 | +used. For compatibility with older versions, @samp{connect_timeout} is | |
| 179 | +accepted as an alias for this command. | |
| 180 | +@anchor{protocol} | |
| 181 | +@item protocol (smtp|lmtp) | |
| 182 | +@cmindex protocol | |
| 183 | +Set the protocol to use. Currently only SMTP and LMTP are supported. SMTP is | |
| 184 | +the default. See @ref{port} for default ports. | |
| 185 | +@anchor{domain} | |
| 186 | +@item domain @var{argument} | |
| 187 | +@cmindex domain | |
| 188 | +This command sets the argument of the SMTP EHLO (or LMTP LHLO) command. The | |
| 189 | +default is @samp{localhost}, which is stupid but should always work. Possible | |
| 190 | +choices are the domain part of your mail address (@code{provider.example} for | |
| 191 | +@code{joe@@provider.example}) or the fully qualified domain name of your host | |
| 192 | +(if available). | |
| 193 | +@end table | |
| 194 | + | |
| 195 | +@section Authentication commands | |
| 196 | + | |
| 197 | +@xref{Authentication}. | |
| 198 | + | |
| 199 | +@table @samp | |
| 200 | +@anchor{auth} | |
| 201 | +@item auth [(on|off|@var{method})] | |
| 202 | +@cmindex auth | |
| 203 | +This command enables or disables SMTP authentication and optionally chooses an | |
| 204 | +authentication method to use. It should not be necessary to choose a method; | |
| 205 | +with the argument @samp{on}, msmtp will choose the best one available. | |
| 206 | +Accepted methods are @samp{plain}, @samp{cram-md5}, @samp{digest-md5}, | |
| 207 | +@samp{scram-sha-1}, @samp{gssapi}, @samp{external}, @samp{login}, and | |
| 208 | +@samp{ntlm}. | |
| 209 | +@xref{Authentication}.@* | |
| 210 | +@anchor{user} | |
| 211 | +@item user [@var{username}] | |
| 212 | +@cmindex user | |
| 213 | +Set your user name for SMTP authentication. An empty argument unsets the user | |
| 214 | +name. Authentication must be activated with the @samp{auth} command. | |
| 215 | +@anchor{password} | |
| 216 | +@item password [@var{secret}] | |
| 217 | +@cmindex password | |
| 218 | +Set your password for SMTP authentication. An empty argument unsets the | |
| 219 | +password. Authentication must be activated with the @samp{auth} command. | |
| 220 | +If no password is set but one is needed during authentication, msmtp will try to | |
| 221 | +find it. First, if @samp{passwordeval} is set, it will evaluate that command. If | |
| 222 | +@samp{passwordeval} is not set, msmtp will try to find the password in | |
| 223 | +@code{~/.netrc}. If that fails, it will try to find it in | |
| 224 | +@code{SYSCONFDIR/netrc} (use @code{--version} to find out what @code{SYSCONFDIR} | |
| 225 | +is on your platform). If that fails, it will try to get it from a system | |
| 226 | +specific keyring (if available). If that fails but a controlling terminal is | |
| 227 | +available, msmtp will prompt you for it. | |
| 228 | +@xref{Authentication}. | |
| 229 | +@anchor{passwordeval} | |
| 230 | +@item passwordeval [@var{eval}] | |
| 231 | +@cmindex passwordeval | |
| 232 | +Set your password for SMTP authentication to the output (stdout) of the | |
| 233 | +execution of @var{eval}. | |
| 234 | +@anchor{ntlmdomain} | |
| 235 | +@item ntlmdomain [@var{ntlmdomain}] | |
| 236 | +@cmindex ntlmdomain | |
| 237 | +Set a domain for the @samp{ntlm} authentication method. The default is to use | |
| 238 | +no domain (equivalent to an empty argument), but some servers seem to require | |
| 239 | +one, even if it is an arbitrary string. | |
| 240 | +@end table | |
| 241 | + | |
| 242 | +@section TLS commands | |
| 243 | + | |
| 244 | +@xref{Transport Layer Security}. | |
| 245 | + | |
| 246 | +@table @samp | |
| 247 | +@anchor{tls} | |
| 248 | +@item tls [(on|off)] | |
| 249 | +@cmindex tls | |
| 250 | +This command enables or disables TLS/SSL encrypted connections to the SMTP | |
| 251 | +server. Not every server supports TLS, and a few that support it require the | |
| 252 | +@samp{tls_starttls off} command.@* | |
| 253 | +To use TLS/SSL, it is required to either use the @samp{tls_trust_file} command | |
| 254 | +(highly recommended) or to disable @samp{tls_certcheck}. | |
| 255 | +@xref{Transport Layer Security}. | |
| 256 | +@anchor{tls_trust_file} | |
| 257 | +@item tls_trust_file [@var{file}] | |
| 258 | +@cmindex tls_trust_file | |
| 259 | +This command activates strict server certificate verification. | |
| 260 | +The given file must contain one or more certificates of trusted Certification | |
| 261 | +Authorities (CAs) in PEM format.@* | |
| 262 | +On Debian based systems, you can install the @samp{ca-certificates} package and | |
| 263 | +use the file @file{/etc/ssl/certs/ca-certificates.crt}.@* | |
| 264 | +An empty argument disables this feature. | |
| 265 | +@anchor{tls_crl_file} | |
| 266 | +@item tls_crl_file [@var{file}] | |
| 267 | +@cmindex tls_crl_file | |
| 268 | +This command sets or unsets a certificate revocation list (CRL) file for TLS, | |
| 269 | +to be used during strict server certificate verification as enabled by the | |
| 270 | +@ref{tls_trust_file} command. This allows the verification procedure to detect | |
| 271 | +revoked certificates. | |
| 272 | +@xref{Transport Layer Security}. | |
| 273 | +@anchor{tls_fingerprint} | |
| 274 | +@item tls_fingerprint [@var{fingerprint}] | |
| 275 | +@cmindex tls_fingerprint | |
| 276 | +This command sets or unsets the fingerprint of a particular TLS certificate. | |
| 277 | +This certificate will then be trusted, regardless of its contents. This can be | |
| 278 | +used to trust broken certificates (e.g. with a non-matching hostname) or in | |
| 279 | +situations where @samp{tls_trust_file} cannot be used for some reason. | |
| 280 | +You can give either an SHA1 (recommended) or an MD5 fingerprint in the format | |
| 281 | +@code{01:23:45:67:@dots{}}. | |
| 282 | +You can use @samp{--serverinfo --tls --tls-certcheck=off} to get the peer | |
| 283 | +certificate's fingerprints. | |
| 284 | +@xref{Transport Layer Security}. | |
| 285 | +@anchor{tls_key_file} | |
| 286 | +@item tls_key_file [@var{file}] | |
| 287 | +@cmindex tls_key_file | |
| 288 | +This command (together with the @samp{tls_cert_file}) command enables msmtp to | |
| 289 | +send a client certificate to the SMTP server if requested. | |
| 290 | +The file must contain the private key of a certificate in PEM format. | |
| 291 | +An empty argument disables this feature. | |
| 292 | +@xref{Transport Layer Security}. | |
| 293 | +@anchor{tls_cert_file} | |
| 294 | +@item tls_cert_file [@var{file}] | |
| 295 | +@cmindex tls_cert_file | |
| 296 | +This command (together with the @samp{tls_key_file} command) enables msmtp to | |
| 297 | +send a client certificate to the SMTP server if requested. | |
| 298 | +The file must contain a certificate in PEM format. | |
| 299 | +An empty argument disables this feature. | |
| 300 | +@xref{Transport Layer Security}. | |
| 301 | +@anchor{tls_certcheck} | |
| 302 | +@item tls_certcheck [(on|off)] | |
| 303 | +@cmindex tls_certcheck | |
| 304 | +This command enables or disables checks for the server certificate.@* | |
| 305 | +WARNING: When the checks are disabled, TLS/SSL sessions will be vulnerable to | |
| 306 | +man-in-the-middle attacks! @xref{Transport Layer Security}.@* | |
| 307 | +For compatibility with older versions, @samp{tls_nocertcheck} is accepted as an | |
| 308 | +alias for @samp{tls_certcheck off}. | |
| 309 | +@anchor{tls_starttls} | |
| 310 | +@item tls_starttls [(on|off)] | |
| 311 | +@cmindex tls_starttls | |
| 312 | +This command enables or disables the use of the STARTTLS SMTP command to start | |
| 313 | +TLS encryption. It is enabled by default. | |
| 314 | +@xref{Transport Layer Security}. | |
| 315 | +For compatibility with older versions, @samp{tls_nostarttls} is accepted as an | |
| 316 | +alias for @samp{tls_starttls off}. | |
| 317 | +@anchor{tls_force_sslv3} | |
| 318 | +@item tls_force_sslv3 [(on|off)] | |
| 319 | +@cmindex tls_force_sslv3 | |
| 320 | +Force TLS/SSL version SSLv3. This might be needed to use SSL with some old and | |
| 321 | +broken servers. Do not use this unless you have to. | |
| 322 | +@xref{Transport Layer Security}. | |
| 323 | +@anchor{tls_min_dh_prime_bits} | |
| 324 | +@item tls_min_dh_prime_bits [@var{bits}] | |
| 325 | +@cmindex tls_min_dh_prime_bits | |
| 326 | +Set or unset the minimum number of Diffie-Hellman (DH) prime bits that msmtp | |
| 327 | +will accept for TLS sessions. The default is set by the TLS library and can be | |
| 328 | +selected by using an empty argument to this command. Only lower the default | |
| 329 | +(for example to 512 bits) if there is no other way to make TLS work with the | |
| 330 | +remote server. | |
| 331 | +@xref{Transport Layer Security}. | |
| 332 | +@anchor{tls_priorities} | |
| 333 | +@item tls_priorities [@var{priorities}] | |
| 334 | +@cmindex tls_priorities | |
| 335 | +Set the priorities for TLS sessions. The default is set by the TLS library and | |
| 336 | +can be selected by using an empty argument to this command. Currently this | |
| 337 | +command only works with sufficiently recent GnuTLS releases. See the GnuTLS | |
| 338 | +documentation of the @samp{gnutls_priority_init} function for a description of | |
| 339 | +the @var{priorities} string. | |
| 340 | +@xref{Transport Layer Security}. | |
| 341 | +@end table | |
| 342 | + | |
| 343 | +@section Commands specific to sendmail mode | |
| 344 | + | |
| 345 | +@xref{Sendmail mode}. | |
| 346 | + | |
| 347 | +@table @samp | |
| 348 | +@anchor{auto_from} | |
| 349 | +@item auto_from [(on|off)] | |
| 350 | +@cmindex auto_from | |
| 351 | +Enable or disable automatic envelope-from addresses. The default is | |
| 352 | +@samp{off}.@* | |
| 353 | +When enabled, an envelope-from address of the form user@@domain will be | |
| 354 | +generated. The local part will be set to @code{USER} or, if that fails, to | |
| 355 | +@code{LOGNAME} or, if that fails, to the login name of the current user. The | |
| 356 | +domain part can be set with the @samp{maildomain} command (see | |
| 357 | +@ref{maildomain}). If the maildomain is empty, the envelope-from address will | |
| 358 | +only consist of the user name and not have a domain part.@* | |
| 359 | +When disabled, the envelope-from address must be set explicitly with the | |
| 360 | +@samp{from} command (see @ref{from}).@* | |
| 361 | +@xref{Envelope-from address}. | |
| 362 | +@anchor{from} | |
| 363 | +@item from [@var{address}] | |
| 364 | +@cmindex from | |
| 365 | +Set the envelope-from address. This address will only be used when | |
| 366 | +@samp{auto_from} is disabled. | |
| 367 | +@xref{Envelope-from address}. | |
| 368 | +@anchor{maildomain} | |
| 369 | +@item maildomain [@var{domain}] | |
| 370 | +@cmindex maildomain | |
| 371 | +Set a domain part for the generation of an envelope-from address. This is only | |
| 372 | +used when @samp{auto_from} is enabled. The domain may be empty. | |
| 373 | +@xref{Envelope-from address}. | |
| 374 | +@anchor{dsn_notify} | |
| 375 | +@item dsn_notify (off|@var{condition}) | |
| 376 | +@cmindex dsn_notify | |
| 377 | +This command sets the condition(s) under which the mail system should send DSN | |
| 378 | +(Delivery Status Notification) messages. The argument off disables | |
| 379 | +explicit DSN requests, which means the mail system decides when to send DSN | |
| 380 | +messages. This is the default. | |
| 381 | +The @var{condition} must be @samp{never}, to never request notification, or a | |
| 382 | +comma separated list (no spaces!) of one or more of the following: | |
| 383 | +@samp{failure}, to request notification on transmission failure, @samp{delay}, | |
| 384 | +to be notified of message delays, @samp{success}, to be notified of successful | |
| 385 | +transmission. | |
| 386 | +The SMTP server must support the DSN extension. | |
| 387 | +@xref{Delivery Status Notifications}. | |
| 388 | +@anchor{dsn_return} | |
| 389 | +@item dsn_return (off|@var{amount}) | |
| 390 | +@cmindex dsn_return | |
| 391 | +This command controls how much of a mail should be returned in DSN (Delivery | |
| 392 | +Status Notification) messages. The argument off disables explicit DSN | |
| 393 | +requests, which means the mail system decides how much of a mail it returns in | |
| 394 | +DSN messages. This is the default. | |
| 395 | +The @var{amount} must be @samp{headers}, to just return the message headers, or | |
| 396 | +@samp{full}, to return the full mail. | |
| 397 | +The SMTP server must support the DSN extension. | |
| 398 | +@xref{Delivery Status Notifications}. | |
| 399 | +@anchor{keepbcc} | |
| 400 | +@item keepbcc [(on|off)] | |
| 401 | +@cmindex keepbcc | |
| 402 | +This command controls whether to remove or keep the Bcc header when sending a | |
| 403 | +mail. The default is to remove it. @xref{Bcc header}. | |
| 404 | +@anchor{logfile} | |
| 405 | +@item logfile [@var{file}] | |
| 406 | +@cmindex logfile | |
| 407 | +This command enables or disables logging to the specified file. An empty | |
| 408 | +argument disables this feature. The file name @samp{-} directs the log | |
| 409 | +information to standard output. | |
| 410 | +@xref{Logging}. | |
| 411 | +@anchor{syslog} | |
| 412 | +@item syslog [(on|off|@var{facility})] | |
| 413 | +@cmindex syslog | |
| 414 | +This command enables or disables syslog logging. The facility can be one of | |
| 415 | +@samp{LOG_USER}, @samp{LOG_MAIL}, @samp{LOG_LOCAL0}, @dots{}, @samp{LOG_LOCAL7}. | |
| 416 | +The default facility is @samp{LOG_USER}. Syslog logging is disabled by default. | |
| 417 | +@xref{Logging}. | |
| 418 | +@end table | |
| 419 | + | |
| 420 | + | |
| 421 | +@node Invocation | |
| 422 | +@chapter Invocation | |
| 423 | + | |
| 424 | +@section Synopsis | |
| 425 | + | |
| 426 | +@itemize | |
| 427 | +@item Sendmail mode (default):@* | |
| 428 | +@code{msmtp [@var{option}@dots{}] [--] @var{recipient}@dots{}}@* | |
| 429 | +@code{msmtp [@var{option}@dots{}] -t [--] [@var{recipient}@dots{}]} | |
| 430 | +@item Server information mode:@* | |
| 431 | +@code{msmtp [@var{option}@dots{}] --serverinfo} | |
| 432 | +@item Remote Message Queue Starting mode:@* | |
| 433 | +@code{msmtp [@var{option}@dots{}] | |
| 434 | +--rmqs=(@var{host}|@var{@@domain}|@var{#queue})} | |
| 435 | +@end itemize | |
| 436 | + | |
| 437 | +@section Options | |
| 438 | +Options override configuration file settings. They are compatible with sendmail | |
| 439 | +where appropriate. | |
| 440 | + | |
| 441 | +@subsection General options | |
| 442 | +@table @samp | |
| 443 | +@item --version | |
| 444 | +@opindex --version | |
| 445 | +Print version information. This includes information about the library used for | |
| 446 | +TLS/SSL support (if any), the library used for authentication, the | |
| 447 | +authentication mechanisms supported by this library, and the default locations | |
| 448 | +of the system and user configuration files. | |
| 449 | +@item --help | |
| 450 | +@opindex --help | |
| 451 | +Print help. | |
| 452 | +@item -P | |
| 453 | +@itemx --pretend | |
| 454 | +@opindex -P | |
| 455 | +@opindex --pretend | |
| 456 | +Print the configuration settings that would be used, but do not take further | |
| 457 | +action. An asterisk ('*') will be printed instead of the password. | |
| 458 | +@item -v | |
| 459 | +@item -d | |
| 460 | +@itemx --debug | |
| 461 | +@opindex -v | |
| 462 | +@opindex -d | |
| 463 | +@opindex --debug | |
| 464 | +Print lots of debugging information, including the whole conversation with the | |
| 465 | +SMTP server. Be careful with this option: the (potentially dangerous) output | |
| 466 | +will not be sanitized, and your password may get printed in an easily decodable | |
| 467 | +format! | |
| 468 | +@end table | |
| 469 | + | |
| 470 | +@subsection Changing the mode of operation | |
| 471 | +@table @samp | |
| 472 | +@anchor{--serverinfo} | |
| 473 | +@item -S | |
| 474 | +@itemx --serverinfo | |
| 475 | +@opindex -S | |
| 476 | +@opindex --serverinfo | |
| 477 | +Print information about the SMTP server and exit. This includes information | |
| 478 | +about supported features (mail size limit, authentication, TLS, DSN, @dots{}) | |
| 479 | +and about the TLS certificate (if TLS is active). | |
| 480 | +@xref{Server information mode}. | |
| 481 | +@anchor{--rmqs} | |
| 482 | +@itemx --rmqs=(@var{host}|@var{@@domain}|@var{#queue}) | |
| 483 | +@opindex --rmqs | |
| 484 | +Send a Remote Message Queue Starting request for the given host, domain, or | |
| 485 | +queue to the SMTP server and exit. | |
| 486 | +@xref{Remote Message Queue Starting mode}. | |
| 487 | +@end table | |
| 488 | + | |
| 489 | +@subsection Configuration options | |
| 490 | +Most options in this category correspond to a configuration file command. | |
| 491 | +Please refer to @ref{Configuration files} for detailed information. | |
| 492 | +@table @samp | |
| 493 | +@item -C @var{filename} | |
| 494 | +@itemx --file=@var{filename} | |
| 495 | +@opindex -C | |
| 496 | +@opindex --file | |
| 497 | +Use the given file instead of @code{~/.msmtprc} as the user configuration | |
| 498 | +file. | |
| 499 | +@item -a @var{account} | |
| 500 | +@itemx --account=@var{account} | |
| 501 | +@opindex -a | |
| 502 | +@opindex --account | |
| 503 | +Use the given account instead of the account named @samp{default}. This option | |
| 504 | +cannot be used together with the @samp{--host} option. | |
| 505 | +@xref{Choosing an account}. | |
| 506 | +@itemx --host=@var{hostname} | |
| 507 | +@opindex --host | |
| 508 | +Use this SMTP server with settings from the command line; do not use any | |
| 509 | +configuration file data. This option cannot be used together with the | |
| 510 | +@samp{--account} option. It disables loading of configuration files. | |
| 511 | +@xref{Choosing an account}. | |
| 512 | +@itemx --port=@var{number} | |
| 513 | +@opindex --port | |
| 514 | +Set the port number to connect to. @xref{port}. | |
| 515 | +@itemx --timeout=(off|@var{seconds}) | |
| 516 | +@opindex --timeout | |
| 517 | +Set a network timeout. @xref{timeout}. For compatibility with older versions, | |
| 518 | +@samp{--connect-timeout} is accepted as an alias for this option. | |
| 519 | +@itemx --protocol=(smtp|lmtp) | |
| 520 | +@opindex --protocol | |
| 521 | +Set the protocol. @xref{protocol}. | |
| 522 | +@itemx --domain=[@var{argument}] | |
| 523 | +@opindex --domain | |
| 524 | +Set the argument of the SMTP EHLO (or LMTP LHLO) command. @xref{domain}. | |
| 525 | +@anchor{--auth} | |
| 526 | +@itemx --auth[=(on|off|@var{method})] | |
| 527 | +@opindex --auth | |
| 528 | +Enable or disable authentication and optionally choose the method. @xref{auth}. | |
| 529 | +@anchor{--user} | |
| 530 | +@itemx --user=[@var{username}] | |
| 531 | +@opindex --user | |
| 532 | +Set or unset the user name for authentication. @xref{user}. | |
| 533 | +@anchor{--passwordeval} | |
| 534 | +@itemx --passwordeval=[@var{eval}] | |
| 535 | +@opindex --passwordeval | |
| 536 | +Evaluate password for authentication. @xref{passwordeval}. | |
| 537 | +@itemx --tls[=(on|off)] | |
| 538 | +@opindex --tls | |
| 539 | +Enable or disable TLS/SSL. @xref{tls}. | |
| 540 | +@anchor{--tls-starttls} | |
| 541 | +@itemx --tls-starttls[=(on|off)] | |
| 542 | +@opindex --tls-starttls | |
| 543 | +Enable or disable STARTTLS for TLS encryption. @xref{tls_starttls}. | |
| 544 | +@anchor{--tls-trust-file} | |
| 545 | +@itemx --tls-trust-file=[@var{file}] | |
| 546 | +@opindex --tls-trust-file | |
| 547 | +Set or unset a trust file for TLS encryption. @xref{tls_trust_file}. | |
| 548 | +@anchor{--tls-crl-file} | |
| 549 | +@itemx --tls-crl-file=[@var{file}] | |
| 550 | +@opindex --tls-crl-file | |
| 551 | +Set or unset a certificate revocation list (CRL) file for TLS. | |
| 552 | +@xref{tls_crl_file}. | |
| 553 | +@anchor{--tls-fingerprint} | |
| 554 | +@itemx --tls-fingerprint=[@var{fingerprint}] | |
| 555 | +@opindex --tls-fingerprint | |
| 556 | +Set ot unset the fingerprint of a trusted TLS certificate. | |
| 557 | +@xref{tls_fingerprint}. | |
| 558 | +@anchor{--tls-key-file} | |
| 559 | +@itemx --tls-key-file=[@var{file}] | |
| 560 | +@opindex --tls-key-file | |
| 561 | +Set or unset a key file for TLS encryption. @xref{tls_key_file}. | |
| 562 | +@anchor{--tls-cert-file} | |
| 563 | +@itemx --tls-cert-file=[@var{file}] | |
| 564 | +@opindex --tls-cert-file | |
| 565 | +Set or unset a cert file for TLS encryption. @xref{tls_cert_file}. | |
| 566 | +@anchor{--tls-certcheck} | |
| 567 | +@itemx --tls-certcheck[=(on|off)] | |
| 568 | +@opindex --tls-certcheck | |
| 569 | +Enable or disable server certificate checks for TLS encryption. | |
| 570 | +@xref{tls_certcheck}. | |
| 571 | +@anchor{--tls-force-sslv3} | |
| 572 | +@itemx --tls-force-sslv3[=(on|off)] | |
| 573 | +@opindex --tls-force-sslv3 | |
| 574 | +Force TLS/SSL version SSLv3. @xref{tls_force_sslv3}. | |
| 575 | +@anchor{--tls-min-dh-prime-bits} | |
| 576 | +@itemx --tls-min-dh-prime-bits=[@var{bits}] | |
| 577 | +@opindex --tls-min-dh-prime-bits | |
| 578 | +Set or unset minimum bit size of the Diffie-Hellman (DH) prime. | |
| 579 | +@xref{tls_min_dh_prime_bits}. | |
| 580 | +@anchor{--tls-priorities} | |
| 581 | +@itemx --tls-priorities=[@var{priorities}] | |
| 582 | +@opindex --tls-priorities | |
| 583 | +Set or unset TLS priorities. @xref{tls_priorities}. | |
| 584 | +@end table | |
| 585 | + | |
| 586 | +@subsection Options specific to sendmail mode | |
| 587 | +@table @samp | |
| 588 | +@anchor{--auto-from} | |
| 589 | +@itemx --auto-from[=(on|off)] | |
| 590 | +@opindex --auto-from | |
| 591 | +Enable or disable automatic envelope-from addresses. The default is off. | |
| 592 | +@xref{auto_from}. | |
| 593 | +@anchor{--from} | |
| 594 | +@item -f @var{address} | |
| 595 | +@itemx --from=@var{address} | |
| 596 | +@opindex -f | |
| 597 | +@opindex --from | |
| 598 | +Set the envelope-from address. It is only used when @samp{auto_from} is off. | |
| 599 | +@xref{from}.@* | |
| 600 | +If no account was chosen yet (with @samp{--account} or @samp{--host}), this | |
| 601 | +option will choose the first account that has the given envelope-from address | |
| 602 | +(set with the @samp{from} command). If no such account is found, "default" is | |
| 603 | +used. @xref{Choosing an account}. | |
| 604 | +@anchor{--maildomain} | |
| 605 | +@itemx --maildomain=[@var{domain}] | |
| 606 | +@opindex --maildomain | |
| 607 | +Set the domain part for generated envelope-from addresses. It is only used when | |
| 608 | +@samp{auto_from} is on. @xref{maildomain}. | |
| 609 | +@anchor{--dsn-notify} | |
| 610 | +@item -N (off|@var{condition}) | |
| 611 | +@itemx --dsn-notify=(off|@var{condition}) | |
| 612 | +@opindex -N | |
| 613 | +@opindex --dsn-notify | |
| 614 | +Set or unset DSN notification conditions. @xref{dsn_notify}. | |
| 615 | +@anchor{--dsn-return} | |
| 616 | +@item -R (off|@var{amount}) | |
| 617 | +@itemx --dsn-return=(off|@var{amount}) | |
| 618 | +@opindex -R | |
| 619 | +@opindex --dsn-return | |
| 620 | +Set or unset the DSN notification amount. @xref{dsn_return}. | |
| 621 | +Note that @samp{hdrs} is accepted as an alias for @samp{headers} to be | |
| 622 | +compatible with sendmail. | |
| 623 | +@anchor{--keepbcc} | |
| 624 | +@itemx --keepbcc[=(on|off)] | |
| 625 | +@opindex --keepbcc | |
| 626 | +Enable or disable the preservation of the Bcc header. @xref{keepbcc}. | |
| 627 | +@anchor{--logfile} | |
| 628 | +@item -X [@var{file}] | |
| 629 | +@itemx --logfile=[@var{file}] | |
| 630 | +@opindex -X | |
| 631 | +@opindex --logfile | |
| 632 | +Set or unset the log file. @xref{logfile}. | |
| 633 | +@anchor{--syslog} | |
| 634 | +@itemx --syslog[=(on|off|@var{facility})] | |
| 635 | +@opindex --syslog | |
| 636 | +Enable or disable syslog logging. @xref{syslog}. | |
| 637 | +@item -t | |
| 638 | +@itemx --read-recipients | |
| 639 | +@opindex -t | |
| 640 | +@opindex --read-recipients | |
| 641 | +Send the mail to the recipients given in the To, Cc, and Bcc headers of the | |
| 642 | +mail in addition to the recipients given on the command line.@* | |
| 643 | +If any Resent- headers are present, then the addresses from any Resent-To, | |
| 644 | +Resent-Cc, and Resent-Bcc headers in the first block of Resent- headers are | |
| 645 | +used instead. | |
| 646 | +@itemx --read-recipients | |
| 647 | +@opindex --read-recipients | |
| 648 | +Read the envelope from address from the From header of the mail. | |
| 649 | +@itemx -- | |
| 650 | +This marks the end of options. All following arguments will be treated as | |
| 651 | +recipient addresses, even if they start with a '-'. | |
| 652 | +@end table | |
| 653 | + | |
| 654 | +The following options are accepted but ignored for sendmail compatibility: | |
| 655 | +@samp{-B@var{type}}, @samp{-bm}, @samp{-F@var{name}}, @samp{-G}, @samp{-hN}, | |
| 656 | +@samp{-i}, @samp{-L @var{tag}}, @samp{-m}, @samp{-n}, | |
| 657 | +@samp{-O option=@var{value}}, @samp{-ox @var{value}} | |
| 658 | + | |
| 659 | +@anchor{Choosing an account} | |
| 660 | +@section Choosing an account | |
| 661 | + | |
| 662 | +There are three ways to choose the account to use. | |
| 663 | +It depends on the circumstances which method is the best. | |
| 664 | + | |
| 665 | +@enumerate | |
| 666 | +@item @samp{--account=@var{account}}@* | |
| 667 | +Use the given account. Command line settings override configuration file | |
| 668 | +settings. | |
| 669 | +@item @samp{--host=@var{hostname}}@* | |
| 670 | +Use only the settings from the command line; do not use any configuration file | |
| 671 | +data. | |
| 672 | +@item @samp{--from=@var{address}} or @samp{--read-envelope-from}@* | |
| 673 | +Choose the first account from the system or user configuration file that has | |
| 674 | +a matching envelope-from address as specified by a @samp{from} command. This | |
| 675 | +works only when neither @samp{--account} nor @samp{--host} is used. | |
| 676 | +@end enumerate | |
| 677 | +If none of the above options is used (or if no account has a matching | |
| 678 | +@samp{from} command), then the account "default" is used. | |
| 679 | + | |
| 680 | +@section Exit code | |
| 681 | + | |
| 682 | +The standard exit codes from @code{sysexits.h} are used. | |
| 683 | + | |
| 684 | +@anchor{Files} | |
| 685 | +@section Files | |
| 686 | + | |
| 687 | +@table @samp | |
| 688 | +@item @code{SYSCONFDIR/msmtprc} | |
| 689 | +The system configuration file. Use the @samp{--version} option to find out what | |
| 690 | +@code{SYSCONFDIR} is on your platform. | |
| 691 | +@item @code{~/.msmtprc} | |
| 692 | +The default user configuration file. | |
| 693 | +@item @code{~/.netrc} and @code{SYSCONFDIR/netrc} | |
| 694 | +The @code{netrc} file contains login information. If a password is not found | |
| 695 | +in the configuration file, msmtp will search it in @code{~/.netrc} and | |
| 696 | +@code{SYSCONFDIR} before prompting the user for it. The syntax of @code{netrc} | |
| 697 | +files is described in the @code{netrc(5)} or @code{ftp(1)} manual page. | |
| 698 | +@end table | |
| 699 | + | |
| 700 | +@anchor{Environment} | |
| 701 | +@section Environment | |
| 702 | + | |
| 703 | +@table @samp | |
| 704 | +@item @code{USER}, @code{LOGNAME} | |
| 705 | +These variables override the user's login name when constructing an | |
| 706 | +envelope-from address. @code{LOGNAME} is only used if @code{USER} is unset. | |
| 707 | +@item @code{TMPDIR} | |
| 708 | +Directory to create temporary files in. If this is unset, a system specific | |
| 709 | +default directory is used.@* | |
| 710 | +A temporary file is only created when the @samp{-t}/@samp{--read-recipients} | |
| 711 | +or @samp{--read-envelope-from} option is used. The file is then used to buffer | |
| 712 | +the headers of the mail (but not the body, so the file won't get very large). | |
| 713 | +@item @code{EMAIL}, @code{SMTPSERVER} | |
| 714 | +These environment variables are used only if neither @samp{--host} nor | |
| 715 | +@samp{--account} is used and there is no default account defined in the | |
| 716 | +configuration files. In this case, the host name is taken from | |
| 717 | +@code{SMTPSERVER}, and the envelope from address is taken from @code{EMAIL}, | |
| 718 | +unless overridden by @samp{--from} or @samp{--read-envelope-from}. Currently | |
| 719 | +@code{SMTPSERVER} must contain a plain host name (no URL), and @code{EMAIL} | |
| 720 | +must contain a plain address (no names or additional information). | |
| 721 | +@end table | |
| 722 | + | |
| 723 | +@node Transport Layer Security | |
| 724 | +@chapter Transport Layer Security | |
| 725 | + | |
| 726 | +Transport Layer Security (TLS) is a new name for Secure Socket Layer (SSL). | |
| 727 | +The TLS 1.0 protocol is an updated version of the SSL 3.0 protocol. TLS and | |
| 728 | +SSL mean the same thing. | |
| 729 | + | |
| 730 | +Quoting from RFC2246, the TLS 1.0 protocol specification:@* | |
| 731 | +"The TLS protocol provides communications privacy over the Internet. | |
| 732 | +The protocol allows client/server applications to communicate in a way that | |
| 733 | +is designed to prevent eavesdropping, tampering, or message forgery." | |
| 734 | + | |
| 735 | +SMTP servers can use TLS in one of two modes: | |
| 736 | +@itemize | |
| 737 | +@item Immediately. This is SMTP tunneled through TLS, aka SSMTP. The default | |
| 738 | +port for this mode is 465 (ssmtp). | |
| 739 | +@item Via the STARTTLS SMTP command. The SMTP session begins normally. The | |
| 740 | +client sends the STARTTLS command when it wishes to begin TLS encryption. The | |
| 741 | +default port for this mode is the default SMTP port: 25 (smtp). | |
| 742 | +@end itemize | |
| 743 | +msmtp can switch between these modes with the @samp{tls_starttls} command (see | |
| 744 | +@ref{tls_starttls}) command or the @samp{--tls-starttls} option (see | |
| 745 | +@ref{--tls-starttls}). | |
| 746 | + | |
| 747 | +When TLS is started, the server sends a certificate to identify itself. This | |
| 748 | +certificate contains information about the certificate owner, the certificate | |
| 749 | +issuer, and the activation and expiration times of the certificate. This | |
| 750 | +information can be displayed in server information mode. | |
| 751 | +@xref{Server information mode}. | |
| 752 | + | |
| 753 | +To use TLS, it is required to either enable full server certificate verification | |
| 754 | +using the @samp{tls_trust_file} command or @samp{--tls-trust-file} option, or to | |
| 755 | +trust one particular peer certificate using the @samp{tls_fingerprint} command | |
| 756 | +or @samp{--tls-fingerprint} option, or to disable all certificate checks using | |
| 757 | +@samp{tls_certcheck off} or @samp{--tls-certcheck=off}. | |
| 758 | +WARNING: When certificate checks are disabled, TLS/SSL sessions are vulnerable | |
| 759 | +to man-in-the-middle attacks! | |
| 760 | +See @ref{tls_trust_file}, @ref{--tls-trust-file}, @ref{tls_fingerprint}, | |
| 761 | +@ref{--tls-fingerprint}, @ref{tls_certcheck}, @ref{--tls-certcheck}. | |
| 762 | + | |
| 763 | +If your system has a file that collects all system-wide trusted CA | |
| 764 | +certificates, it is easiest to just use this in the @samp{defaults} section of | |
| 765 | +your configuration file. On Debian-based systems, for example, the adequate | |
| 766 | +command would be @samp{tls_trust_file /etc/ssl/certs/ca-certificates.crt}. | |
| 767 | + | |
| 768 | +But you can also find out manually which CA certificate you need to | |
| 769 | +trust. First, issue the following command: | |
| 770 | +@example | |
| 771 | +$ msmtp --serverinfo --host=smtp.example.com --tls=on --tls-certcheck=off | |
| 772 | +@end example | |
| 773 | +The option @samp{--tls-certcheck=off} allows msmtp to accept any certificate, | |
| 774 | +so that it can print some information about it. The output of this command | |
| 775 | +tells you the common name of the server certificate issuer. You have to trust | |
| 776 | +this issuer to use full TLS security. Usually you can find the CA certificate | |
| 777 | +on the issuer's homepage. With this CA certificate, the following should | |
| 778 | +succeed: | |
| 779 | +@example | |
| 780 | +$ msmtp --serverinfo --host=smtp.example.com --tls=on \ | |
| 781 | + --tls-trust-file=ca_cert.txt | |
| 782 | +@end example | |
| 783 | + | |
| 784 | +If the server requests it, the client can send a certificate, too. This allows | |
| 785 | +the server to verify the identity of the client. See the EXTERNAL mechanism in | |
| 786 | +@ref{Authentication}. The @samp{tls_key_file}/@samp{tls_cert_file} commands or | |
| 787 | +the @samp{--tls-key-file}/@samp{--tls-cert-file} options can be used to set a | |
| 788 | +client certificate. See @ref{tls_key_file}/@ref{--tls-key-file}, | |
| 789 | +@ref{tls_cert_file}/@ref{--tls-cert-file}. | |
| 790 | +Note that GnuTLS will only send a client certificate if it matches one of the | |
| 791 | +CAs advertised by the server. If you set a client certificate but it is not sent | |
| 792 | +to the server, it probably was not issued by any CA that the server trusts. | |
| 793 | + | |
| 794 | +If you need to fine tune TLS parameters or have problems connecting to your | |
| 795 | +server, have a look at the @ref{tls_force_sslv3}, @ref{tls_min_dh_prime_bits}, | |
| 796 | +and @ref{tls_priorities} commands. | |
| 797 | + | |
| 798 | + | |
| 799 | +@node Authentication | |
| 800 | +@chapter Authentication | |
| 801 | + | |
| 802 | +Many SMTP servers require a client to authenticate itself before it is allowed | |
| 803 | +to send mail. | |
| 804 | + | |
| 805 | +Multiple authentication methods exist. Most SMTP servers support only some of | |
| 806 | +them. Some methods send authentication data in plain text (or nearly plain | |
| 807 | +text) to the server. These methods should only be used when TLS is active to | |
| 808 | +prevent others from stealing the password. @xref{Transport Layer Security}. | |
| 809 | + | |
| 810 | +By default, msmtp chooses a method automatically, and it will never choose one | |
| 811 | +that puts the authentication data at risk. See below for details. | |
| 812 | + | |
| 813 | +msmtp supports the following authentication methods: | |
| 814 | +@itemize | |
| 815 | +@item @samp{PLAIN}@* | |
| 816 | +This authentication method needs a user name and a password. | |
| 817 | +Both are send in BASE64 encoding, which can be easily decoded to plain text. | |
| 818 | +@item @samp{CRAM-MD5}@* | |
| 819 | +This authentication method needs a user name and a password. | |
| 820 | +The authentication data is not sent in plain text, which means this method can | |
| 821 | +safely be used without TLS. | |
| 822 | +@item @samp{DIGEST-MD5}@* | |
| 823 | +This authentication method needs a user name and a password. | |
| 824 | +The authentication data is not sent in plain text, which means this method can | |
| 825 | +safely be used without TLS. | |
| 826 | +@item @samp{SCRAM-SHA-1}@* | |
| 827 | +This authentication method needs a user name and a password. | |
| 828 | +The authentication data is not sent in plain text, which means this method can | |
| 829 | +safely be used without TLS. | |
| 830 | +@item @samp{GSSAPI}@* | |
| 831 | +This authentication method needs a user name. The Kerberos framework takes care | |
| 832 | +of secure authentication, therefore this method can safely be used without TLS. | |
| 833 | +@item @samp{EXTERNAL}@* | |
| 834 | +This is a special authentication method: The actual authentication happens | |
| 835 | +outside of the SMTP protocol, typically by sending a TLS client certificate | |
| 836 | +(see @ref{Transport Layer Security}).@* | |
| 837 | +The EXTERNAL method merely confirms that this authentication succeeded for the | |
| 838 | +given user (or, if no user name is given, confirms that authentication | |
| 839 | +succeeded). Thus it may not be necessary for authentication to use this method, | |
| 840 | +and if the server does not support the EXTERNAL method, this does not mean that | |
| 841 | +it does not support authentication with TLS client certificates.@* | |
| 842 | +This authentication method is not chosen automatically; you have to request it | |
| 843 | +manually.@* | |
| 844 | +Note: Sendmail 8.12.11 advertises the EXTERNAL mechanism only after a TLS | |
| 845 | +client certificate has been send. It seems to ignore the optional user name. | |
| 846 | +Does anyone know more about this? | |
| 847 | +@item @samp{LOGIN}@* | |
| 848 | +This is a non-standard authentication method similar to (but worse than) PLAIN. | |
| 849 | +It needs a user name and a password, both of which are send in BASE64 encoding, | |
| 850 | +which can be easily decoded to plain text. | |
| 851 | +@item @samp{NTLM}@* | |
| 852 | +This is an obscure non-standard authentication method. It needs a user name and | |
| 853 | +a password and in some cases a special domain parameter (see @ref{ntlmdomain}). | |
| 854 | +The authentication data is not send in plain text, but since NTLM is not an open | |
| 855 | +standard, it should be considered broken and insecure. | |
| 856 | +@end itemize | |
| 857 | + | |
| 858 | +It depends on the underlying authentication library and its version whether a | |
| 859 | +particular method is supported or not. Use the @option{--version} to find out | |
| 860 | +which methods are supported by your version of msmtp. | |
| 861 | + | |
| 862 | +Authentication data can be set with the @samp{user} and @samp{password} commands | |
| 863 | +or with the @samp{--user} option. See @ref{user}, @ref{password}, @ref{--user}. | |
| 864 | +If no password is set but one is needed during authentication, msmtp will try to | |
| 865 | +find it. First, if @samp{passwordeval} is set, it will evaluate that command. If | |
| 866 | +@samp{passwordeval} is not set, msmtp will try to find the password in | |
| 867 | +@code{~/.netrc}. If that fails, it will try to find it in | |
| 868 | +@code{SYSCONFDIR/netrc} (use @code{--version} to find out what @code{SYSCONFDIR} | |
| 869 | +is on your platform). If that fails, it will try to get it from a system | |
| 870 | +specific keyring (if available). If that fails but a controlling terminal is | |
| 871 | +available, msmtp will prompt you for it. | |
| 872 | + | |
| 873 | +Currently supported keyrings are the Gnome Keyring and the Mac OS X Keychain. | |
| 874 | +The script @code{msmtp-gnome-tool.py} can be used to manage Gnome Keyring | |
| 875 | +passwords for msmtp. To manage Mac OS X Keychain passwords, use the Keychain | |
| 876 | +Access GUI application. The @samp{account name} is same as the msmtp @samp{user} | |
| 877 | +argument. The @samp{keychain item name} is @code{smtp://<hostname>} where | |
| 878 | +@code{<hostname>} matches the msmtp @samp{host} argument. | |
| 879 | + | |
| 880 | +The authentication method can be chosen with the @samp{auth} command or | |
| 881 | +@samp{--auth} option, but it is usually sufficient to just use the @samp{on} | |
| 882 | +argument to let msmtp choose the method itself. See @ref{auth}, @ref{--auth}. | |
| 883 | + | |
| 884 | +If msmtp chooses the method itself, it will never choose an insecure method. | |
| 885 | +If TLS is active, all methods are considered secure in this context, because the | |
| 886 | +connection to the server is protected by TLS. If TLS is not active, only the | |
| 887 | +CRAM-MD5, DIGEST-MD5, SCRAM-SHA-1, and GSSAPI methods are considered secure in | |
| 888 | +this context, because all the others methods put the authentication data at | |
| 889 | +risk. | |
| 890 | + | |
| 891 | +If you really want to risk your authentication data, you have to force msmtp to | |
| 892 | +do that by manually setting the authentication method while TLS is off. | |
| 893 | + | |
| 894 | + | |
| 895 | +@node Delivery Status Notifications | |
| 896 | +@chapter Delivery Status Notifications | |
| 897 | + | |
| 898 | +In situations such as delivery failure or very long delivery delay, the mail | |
| 899 | +system often generates a message for the sender of the mail in question, | |
| 900 | +informing him about the difficulties. | |
| 901 | + | |
| 902 | +Delivery Status Notification (DSN) requests, defined in RFC 3461, try to give | |
| 903 | +the sender of the mail control about how and when these DSN messages are sent. | |
| 904 | +The SMTP server must support the DSN extension. @xref{Server information mode}. | |
| 905 | + | |
| 906 | +A first parameter controls when such messages should be generated: | |
| 907 | +never, on delivery failure, on delivery delay, and/or on success. | |
| 908 | +This can be set with @samp{dsn_notify}/@samp{--dsn-notify}, see | |
| 909 | +@ref{dsn_notify}/@ref{--dsn-notify}. | |
| 910 | + | |
| 911 | +A second parameter controls how much of the original mail should be contained | |
| 912 | +in a DSN message: only the headers, or the full mail. This can be set with | |
| 913 | +@samp{dsn_return}/@samp{--dsn-return}, see @ref{dsn_return}/@ref{--dsn-return}. | |
| 914 | +Note that this parameter only applies to DSNs that indicate delivery failure | |
| 915 | +for at least one recipient. If a DSN contains no indications of delivery | |
| 916 | +failure, only the headers of the message are returned. | |
| 917 | + | |
| 918 | + | |
| 919 | +@node Sendmail mode | |
| 920 | +@chapter Sendmail mode | |
| 921 | + | |
| 922 | +@menu | |
| 923 | +* Envelope-from address:: Information about envelope-from addresses | |
| 924 | +* Logging:: Different logging methods | |
| 925 | +* Bcc header:: Bcc header handling | |
| 926 | +@end menu | |
| 927 | + | |
| 928 | +@node Envelope-from address | |
| 929 | +@section Envelope-from address | |
| 930 | + | |
| 931 | +The SMTP server expects a sender mail address for each mail. This is the | |
| 932 | +envelope-from address. It is independent of the From header (because it is | |
| 933 | +part of the mail @emph{envelope}, not of the mail itself), but in most cases | |
| 934 | +both addresses are the same. | |
| 935 | + | |
| 936 | +Envelope-from addresses can be generated automatically (when @samp{auto_from} | |
| 937 | +is enabled with the @samp{auto_from} command or @samp{--auto-from} option) or | |
| 938 | +set explicitly with the @samp{from} command and @samp{--from} option. | |
| 939 | +See @ref{auto_from}, @ref{from}. | |
| 940 | + | |
| 941 | +When @samp{auto_from} is enabled, an envelope-from address of the form | |
| 942 | +user@@domain will be generated. The local part will be set to @code{USER} or, | |
| 943 | +if that fails, to @code{LOGNAME} or, if that fails, to the login name of the | |
| 944 | +current user. The domain part can be set with the @samp{maildomain} command | |
| 945 | +and @samp{--maildomain} option (see @ref{maildomain}). If the maildomain is | |
| 946 | +empty, the envelope-from address will only consist of the user name and not | |
| 947 | +have a domain part. | |
| 948 | + | |
| 949 | +@node Logging | |
| 950 | +@section Logging | |
| 951 | + | |
| 952 | +Logging is enabled on a per account basis. If it is enabled, msmtp will generate | |
| 953 | +one log line for each mail it tries to send via the account in question. | |
| 954 | + | |
| 955 | +The line will include the following information: | |
| 956 | +@itemize | |
| 957 | +@item Host name of the SMTP server: @code{host=hostname} | |
| 958 | +@item Whether TLS was used: @code{tls=(on|off)} | |
| 959 | +@item Whether authentication was used: @code{auth=(on|off)} | |
| 960 | +@item The user name used for authentication (only if authentication is used): | |
| 961 | +@code{user=name} | |
| 962 | +@item The envelope-from address: @code{from=address} | |
| 963 | +@item The recipient addresses: @code{recipients=addr1,addr2,@dots{}} | |
| 964 | +@item The size of the mail as transferred to the server, in bytes (only if the | |
| 965 | +delivery succeeded): @code{mailsize=number} | |
| 966 | +@item The SMTP status code and SMTP error message (only in case of | |
| 967 | +failure and only if available): @code{smtpstatus=number}, | |
| 968 | +@code{smtpmsg='message'}. Multiline SMTP messages will be concatenated into one | |
| 969 | +line. | |
| 970 | +@item The msmtp error message (only in case of failure and only | |
| 971 | +if available): @code{errormsg='message'} | |
| 972 | +@item The msmtp exit code (from @code{sysexits.h}; @samp{EX_OK} indicates | |
| 973 | +success): @code{exitcode=EX_@dots{}} | |
| 974 | +@end itemize | |
| 975 | + | |
| 976 | +If a logfile is given with the @samp{logfile} command or @samp{--logfile} | |
| 977 | +option, this log line will be prepended with the current date and time and | |
| 978 | +appended to the specified file. See @ref{logfile}, @ref{--logfile}. | |
| 979 | + | |
| 980 | +If syslog logging is enabled with the @samp{syslog} command or @samp{--syslog} | |
| 981 | +option, the log line is passed to the syslog service with the specified | |
| 982 | +facility. See @ref{syslog}, @ref{--syslog}. | |
| 983 | + | |
| 984 | +@node Bcc header | |
| 985 | +@section Bcc header | |
| 986 | + | |
| 987 | +msmtp transmits mails unaltered to the SMTP server, with one exception: the Bcc | |
| 988 | +header(s) will be removed before the transmission. This behavior can be changed | |
| 989 | +with the @samp{keepbcc} command and @samp{--keepbcc} option, see | |
| 990 | +@ref{keepbcc}/@ref{--keepbcc}. | |
| 991 | + | |
| 992 | + | |
| 993 | +@node Server information mode | |
| 994 | +@chapter Server information mode | |
| 995 | + | |
| 996 | +In server information mode, msmtp prints as much information about the SMTP | |
| 997 | +server as it can get and then exits. | |
| 998 | + | |
| 999 | +The SMTP features that can be detected are: | |
| 1000 | +@itemize | |
| 1001 | +@item SIZE@* | |
| 1002 | +The maximum message size that the SMTP server accepts. | |
| 1003 | +@item PIPELINING@* | |
| 1004 | +Whether certain SMTP commands may be send in groups rather than one by one. | |
| 1005 | +This can speed up mail transmission if the recipient list is long. | |
| 1006 | +This feature is used automatically. | |
| 1007 | +@item STARTTLS@* | |
| 1008 | +@xref{Transport Layer Security}. | |
| 1009 | +@item AUTH@* | |
| 1010 | +@xref{Authentication}. | |
| 1011 | +@item DSN@* | |
| 1012 | +@xref{Delivery Status Notifications}. | |
| 1013 | +@item ETRN@* | |
| 1014 | +@xref{Remote Message Queue Starting mode}. | |
| 1015 | +@end itemize | |
| 1016 | + | |
| 1017 | +If TLS is activated for server information mode, the following information will | |
| 1018 | +be printed about the SMTP server's TLS certificate (if available): | |
| 1019 | +@itemize | |
| 1020 | +@item Owner information | |
| 1021 | +@itemize | |
| 1022 | +@item Common Name | |
| 1023 | +@item Organization | |
| 1024 | +@item Organizational unit | |
| 1025 | +@item Locality | |
| 1026 | +@item State or Province | |
| 1027 | +@item Country | |
| 1028 | +@end itemize | |
| 1029 | +@item Issuer information | |
| 1030 | +@itemize | |
| 1031 | +@item Common Name | |
| 1032 | +@item Organization | |
| 1033 | +@item Organizational unit | |
| 1034 | +@item Locality | |
| 1035 | +@item State or Province | |
| 1036 | +@item Country | |
| 1037 | +@end itemize | |
| 1038 | +@item General | |
| 1039 | +@itemize | |
| 1040 | +@item Activation time | |
| 1041 | +@item Expiration time | |
| 1042 | +@item SHA1 fingerprint | |
| 1043 | +@item MD5 fingerprint | |
| 1044 | +@end itemize | |
| 1045 | +@end itemize | |
| 1046 | + | |
| 1047 | + | |
| 1048 | +@node Remote Message Queue Starting mode | |
| 1049 | +@chapter Remote Message Queue Starting mode | |
| 1050 | + | |
| 1051 | +Remote Message Queue Starting (RMQS) is defined in RFC 1985. It is a way for a | |
| 1052 | +client to request that a server start the processing of its mail queues for | |
| 1053 | +messages that are waiting at the server for the client machine. If any | |
| 1054 | +messages are at the server for the client, then the server creates a new SMTP | |
| 1055 | +session and sends the messages at that time. | |
| 1056 | + | |
| 1057 | +msmtp can only send the request (using the ETRN SMTP command); a mail server on | |
| 1058 | +the client side should then accept the connection of the remote SMTP server to | |
| 1059 | +receive the mail. | |
| 1060 | + | |
| 1061 | +RMQS requests can be sent with the @samp{--rmqs} option (see @ref{--rmqs}). | |
| 1062 | +Destinations defined in RFC 1985 are: | |
| 1063 | +@itemize | |
| 1064 | +@item @var{host}@* | |
| 1065 | +Request the messages for the given host. | |
| 1066 | +@item @var{@@domain}@* | |
| 1067 | +Request the messages for the given domain. | |
| 1068 | +@item @var{#queue}@* | |
| 1069 | +Request the delivery of the messages in the given queue. | |
| 1070 | +@end itemize | |
| 1071 | + | |
| 1072 | + | |
| 1073 | +@node Examples | |
| 1074 | +@chapter Examples | |
| 1075 | + | |
| 1076 | +@menu | |
| 1077 | +* A system wide configuration file:: | |
| 1078 | +* A user configuration file:: | |
| 1079 | +* Using msmtp with Mutt:: | |
| 1080 | +* Using msmtp with mail:: | |
| 1081 | +@end menu | |
| 1082 | + | |
| 1083 | +@node A system wide configuration file | |
| 1084 | +@section A system wide configuration file | |
| 1085 | + | |
| 1086 | +@example | |
| 1087 | +# A system wide configuration is optional. | |
| 1088 | +# If it exists, it usually defines a default account. | |
| 1089 | +# This allows msmtp to be used like /usr/sbin/sendmail. | |
| 1090 | +account default | |
| 1091 | + | |
| 1092 | +# The SMTP smarthost. | |
| 1093 | +host mailhub.oursite.example | |
| 1094 | + | |
| 1095 | +# Construct envelope-from addresses of the form "user@@oursite.example". | |
| 1096 | +#auto_from on | |
| 1097 | +#maildomain oursite.example | |
| 1098 | + | |
| 1099 | +# Use TLS. | |
| 1100 | +#tls on | |
| 1101 | +#tls_trust_file /etc/ssl/certs/ca-certificates.crt | |
| 1102 | + | |
| 1103 | +# Syslog logging with facility LOG_MAIL instead of the default LOG_USER. | |
| 1104 | +syslog LOG_MAIL | |
| 1105 | +@end example | |
| 1106 | + | |
| 1107 | +@node A user configuration file | |
| 1108 | +@section A user configuration file | |
| 1109 | + | |
| 1110 | +@example | |
| 1111 | +# Set default values for all following accounts. | |
| 1112 | +defaults | |
| 1113 | +tls on | |
| 1114 | +tls_trust_file /etc/ssl/certs/ca-certificates.crt | |
| 1115 | +logfile ~/.msmtp.log | |
| 1116 | + | |
| 1117 | +# A freemail service | |
| 1118 | +account freemail | |
| 1119 | +host smtp.freemail.example | |
| 1120 | +from joe_smith@@freemail.example | |
| 1121 | +auth on | |
| 1122 | +user joe.smith | |
| 1123 | +password secret | |
| 1124 | + | |
| 1125 | +# A second mail address at the same freemail service | |
| 1126 | +account freemail2 : freemail | |
| 1127 | +from joey@@freemail.example | |
| 1128 | + | |
| 1129 | +# The SMTP server of the provider. | |
| 1130 | +account provider | |
| 1131 | +host mail.provider.example | |
| 1132 | +from smithjoe@@provider.example | |
| 1133 | +auth on | |
| 1134 | +user 123 | |
| 1135 | +passwordeval gpg -d ~/.msmtp.password.gpg | |
| 1136 | + | |
| 1137 | +# Set a default account | |
| 1138 | +account default : provider | |
| 1139 | +@end example | |
| 1140 | + | |
| 1141 | + | |
| 1142 | +@node Using msmtp with Mutt | |
| 1143 | +@section Using msmtp with Mutt | |
| 1144 | + | |
| 1145 | +Create a configuration file for msmtp and add the following lines to your Mutt | |
| 1146 | +configuration file: | |
| 1147 | +@example | |
| 1148 | +set sendmail="/path/to/msmtp" | |
| 1149 | +set use_from=yes | |
| 1150 | +set realname="Your Name" | |
| 1151 | +set from=you@@example.com | |
| 1152 | +set envelope_from=yes | |
| 1153 | +@end example | |
| 1154 | + | |
| 1155 | +The @samp{envelope_from=yes} option lets Mutt use the @option{-f} option of | |
| 1156 | +msmtp. Therefore msmtp chooses the first account that matches the from address | |
| 1157 | +you@@example.com. Alternatively, you can use the @option{-a} option: | |
| 1158 | +@example | |
| 1159 | +set sendmail="/path/to/msmtp -a my_account" | |
| 1160 | +@end example | |
| 1161 | + | |
| 1162 | +Or set everything from the command line: | |
| 1163 | +@example | |
| 1164 | +set sendmail="/path/to/msmtp --host=mailhub -f me@@example.com --tls" | |
| 1165 | +@end example | |
| 1166 | +@xref{Choosing an account}. | |
| 1167 | + | |
| 1168 | +If you have multiple mail accounts in your msmtp configuration file and let Mutt | |
| 1169 | +use the @option{-f} option to choose one, you can easily switch accounts in Mutt | |
| 1170 | +with the following Mutt configuration lines: | |
| 1171 | +@example | |
| 1172 | +macro generic "<esc>1" ":set from=you@@example.com" | |
| 1173 | +macro generic "<esc>2" ":set from=you@@your-employer.example" | |
| 1174 | +macro generic "<esc>3" ":set from=you@@some-other-provider.example" | |
| 1175 | +@end example | |
| 1176 | +Now you can use <esc>1, <esc>2, and <esc>3 to switch accounts. | |
| 1177 | + | |
| 1178 | +The following example uses a different approach: it maps the single key | |
| 1179 | +@code{<tab>} in Compose context for switching between the various account in a | |
| 1180 | +handy visual way. In the same Compose context, @code{=} is mapped in order to | |
| 1181 | +show the current msmtp account. This example was contributed by Thomas Baruchel. | |
| 1182 | +@example | |
| 1183 | +# Define <tab> and = in order to switch or see the current msmtp account | |
| 1184 | +# Don't forget to put the right path for msmtp binary | |
| 1185 | +macro compose \Cx_ ":set sendmail" | |
| 1186 | +macro compose \Cx| "\Cx_ = \"/usr/local/bin/msmtp" | |
| 1187 | +macro compose \Cx& ":macro compose \\t \\Cx" | |
| 1188 | +macro compose <tab> "\Cx0" | |
| 1189 | +macro compose = "\Cx_\n" | |
| 1190 | +# Put the account in the following lines (here three accounts) | |
| 1191 | +# Don't forget to put the number of the account at the beginning | |
| 1192 | +# of the line, and the number of the next account after the '&' | |
| 1193 | +macro compose \Cx0 "\Cx|\"\n\Cx&1\n\Cx_\n" # default and switch to 1 | |
| 1194 | +macro compose \Cx1 "\Cx| -a example_account\"\n\Cx&2\n\Cx_\n" # switch to 2 | |
| 1195 | +macro compose \Cx2 "\Cx| -a gmail\"\n\Cx&0\n\Cx_\n" # switch to 0 | |
| 1196 | +# End of the accounts | |
| 1197 | +@end example | |
| 1198 | + | |
| 1199 | +@node Using msmtp with mail | |
| 1200 | +@section Using msmtp with mail | |
| 1201 | + | |
| 1202 | +Define a default account, and put the following into @code{~/.mailrc}: | |
| 1203 | +@example | |
| 1204 | +set sendmail="/path/to/msmtp" | |
| 1205 | +@end example | |
| 1206 | + | |
| 1207 | +You need to define a default account, because mail does not allow extra options | |
| 1208 | +to the msmtp command line. | |
| 1209 | + | |
| 1210 | + | |
| 1211 | +@node Development | |
| 1212 | +@chapter Development | |
| 1213 | + | |
| 1214 | +The homepage of msmtp is @url{http://msmtp.sourceforge.net/}; | |
| 1215 | +the SourceForge project page is @url{http://sourceforge.net/projects/msmtp/}. | |
| 1216 | + | |
| 1217 | +The mailing list @code{msmtp-users} can be accessed from the project page. | |
| 1218 | + | |
| 1219 | +Please send any questions, suggestions, and bug reports either to the mailing | |
| 1220 | +list or to Martin Lambers (@email{marlam@@marlam.de}, OpenPGP key: | |
| 1221 | +@url{http://www.marlam.de/key.txt}). | |
| 1222 | +If you send a bug report, please include the output of @code{msmtp --version}. | |
| 1223 | + | |
| 1224 | + | |
| 1225 | +@node Copying Information | |
| 1226 | +@appendix Copying Information | |
| 1227 | + | |
| 1228 | +@menu | |
| 1229 | +* GNU Free Documentation License:: License for copying this manual. | |
| 1230 | +* GNU GPL:: License for copying the program. | |
| 1231 | +@end menu | |
| 1232 | + | |
| 1233 | +@node GNU Free Documentation License | |
| 1234 | +@unnumberedsec GNU Free Documentation License | |
| 1235 | +@include fdl.texi | |
| 1236 | +@node GNU GPL | |
| 1237 | +@unnumberedsec GNU GPL | |
| 1238 | +@include gpl.texi | |
| 1239 | + | |
| 1240 | + | |
| 1241 | +@bye |